include

now browsing by tag

 
 

Why using extend and include stereotypes in OOAD projects is wrong?

Many analyst and UML practitioner use Use Cases as a “process model”. It is really bad idea. As we say “we use OOAD methods”, it means we use object paradigm. The fundatin of OOAD is hermetization, but ‘include’ and ‘extend’ dependencys break this rule.

A lots of time we see diagrams like this:

A few citation (UML specification):
 
A UseCase is a kind of Behaviored Classifier that represents a declaration of a set of offered Behaviors. Each UseCase specifies some behavior that a subject can perform in collaboration with one or more Actors. UseCases define the offered Behaviors of the subject without reference to its internal structure. These Behaviors, involving interactions between the Actors and the subject, may result in changes to the state of the subject and communications with its environment. A UseCase can include possible variations of its basic behavior, including exceptional behavior and error handling. (UML, 18.1.3.1 Use Cases and Actors)

An Extend is a relationship from an extending UseCase (the extension) to an extended UseCase (the extendedCase) that specifies how and when the behavior defined in the extending UseCase can be inserted into the behavior defined in the extended UseCase. The extension takes place at one or more specific extension points defined in the extended UseCase. (UML, 18.1.3.2 Extends)

The Include relationship is intended to be used when there are common parts of the behavior of two or more UseCases. This common part is then extracted to a separate UseCase, to be included by all the base UseCases having this part in common. As the primary use of the Include relationship is for reuse of common parts, what is left in a base UseCase is usually not complete in itself but dependent on the included parts to be meaningful. (UML, 18.1.3.3 Includes).

Object oriented paradigm based on main concepts:
object (part of system)
encapsulation (objects hides their implementation)
polymorphism (one operation could be implemented by more then one methods)
cooperation (objects cooperate to achieve the particular goal)
 
In OOAD <<include>> and <<extend>> breaks encapsulation (we can't use use diagram to modeling any internal application or component structure/architecture).

Need more arguments and explanation? Try my courses...

Uses Case models with include and extend stereotypes

A few citation (UML specification) :

A UseCase is a kind of Behaviored Classifier that represents a declaration of a set of offered Behaviors. Each UseCase specifies some behavior that a subject can perform in collaboration with one or more Actors. UseCases define the offered Behaviors of the subject without reference to its internal structure. These Behaviors, involving interactions between the Actors and the subject, may result in changes to the state of the subject and communications with its environment. A UseCase can include possible variations of its basic behavior, including exceptional behavior and error handling. (UML, 18.1.3.1 Use Cases and Actors)

Important sentence: without reference to its internal structure (see what encapsulation means below).

An Extend is a relationship from an extending UseCase (the extension) to an extended UseCase (the extendedCase) that specifies how and when the behavior defined in the extending UseCase can be inserted into the behavior defined in the extended UseCase. The extension takes place at one or more specific extension points defined in the extended UseCase. (UML, 18.1.3.2 Extends)

The Include relationship is intended to be used when there are common parts of the behavior of two or more UseCases. This common part is then extracted to a separate UseCase, to be included by all the base UseCases having this part in common. As the primary use of the Include relationship is for reuse of common parts, what is left in a base UseCase is usually not complete in itself but dependent on the included parts to be meaningful. (UML, 18.1.3.3 Includes).

Object oriented paradigm based on main concepts:

  • object (part of system)
  • encapsulation (objects hides their implementation)
  • polymorphism (one operation could be implemented by more then one methods)
  • cooperation (objects cooperate to achieve the particular goal)

In OOAD <<include>> and <<extend>> breaks encapsulation (we can’t use use diagram to modeling any internal application or component structure/architecture). , .

Need more arguments and explanation? Try my courses…

References

Laender, A. H. F., Liddle, S. W., & Storey, V. C. (Eds.). (2000). Conceptual modeling - ER 2000: 19th International Conference on Conceptual Modeling, Salt Lake City, Utah, USA, October 2000. Springer.
Hause, M. (2006). The SysML modelling language. Fifteenth European Systems Engineering Conference, 9, 1–12.
Pollack, S. L., Hicks, H. T., & Harrison, W. J. (1975). Tablice decyzyjne. PWN.
Zimmermann, D. A., & Pautasso, D. C. (2020). On the Evolvability Assurance of Microservices: Metrics, Scenarios, and Patterns. 347.
Marian Przełęcki. (1993). Pojęcie prawdy w językach nauk empirycznych. Filozofia Nauki, 1(2–3), 379–387.
Russell, B. (2007). An inquiry into meaning and truth. Spokesman.
Russell, B. (2011). Badania dotyczące znaczenia i prawdy. Wydawnictwo WAM.
Biłat, A. (2018). Metaontologia: o naturze pojęć i teorii ontologicznych (Copernicus Center Press, Ed.). Copernicus Center Press.
Marek Łabuzek. (2003). Wykorzystanie metamodelowania do specyfikacji ontologii znaczenia opisów rzeczywistości. e-Informatica Software Engineering Journal. https://www.e-informatyka.pl/index.php/pimio/inzynieria-wymagan/wykorzystanie-metamodelowania-do-specyfikacji-ontologii-znaczenia-opisow-rzeczywistosci/
Lamentowicz, W., & Wydawnictwo Uniwersytetu Łódzkiego. (2017). Status prawny i dynamika porządku prawnego. Wydawnictwo Uniwersytetu Łódzkiego.
Madkour, M., Butler, K., Mercer, E., Bahrami, A., & Tao, C. (2020). Semantic based model of Conceptual Work Products for formal verification of complex interactive systems. ArXiv Preprint ArXiv:2008.01623, 11.
Nill, C., & Sikka, V. (n.d.). Modeling Software Applications and User Interfaces Using Metaphorical Entities. 4.
Larson, H. (2020). Agent-Based Modeling of Locust Foraging and Social Behavior. 47.
Floyd, C., & Ukena, S. (2005). On Designing Ontologies for Knowledge Sharing in Communities of Practice. CAiSE Workshops (2), 559–569.
uml-diagrams.org. (n.d.). Examples of UML composite structure diagrams - Bank ATM, Apache Tomcat 7 web server, Observer design pattern. [UML Diagrams]. UML Composite Structure Diagram Examples. Retrieved August 8, 2020, from https://www.uml-diagrams.org/composite-structure-examples.html
Vanthienen, J. A. N., & Dries, E. (1992). Developments in decision tables: Evolution, applications and a proposed standard. DTEW Research Report 9227.
King, P. J. (1967). Decision tables. The Computer Journal, 10(2), 135–142.
Vanthienen, J., & Wets, G. (1992). Mapping Decision Tables to Expert System Shells: An Implementation in AionDS. Onderzoeksrapport 9228.
Vasilecas, O., & Smaizys, A. (2007). Business Rule Based Configuration Management and Software System Implementation Using Decision Tables. Local Proceedings of ADBIS, 2007, 27–37.
Anupama Yk. (2015). Decision Table Based Testing. International Journal on Recent and Innovation Trends in Computing and Communication, 3(3), 1298–1301. https://doi.org/10.17762/ijritcc2321-8169.150388
Ustawa z dnia 23 kwietnia 1964 r. - Kodeks cywilny. (1964). http://prawo.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU19640160093
Ustawa z dnia 16 kwietnia 1993 r. o zwalczaniu nieuczciwej konkurencji. (1993). http://prawo.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU19930470211
Ustawa z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych. (1994). http://prawo.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU19940240083
Unmesh Joshi. (2020, August 4). Patterns of Distributed Systems [Martinfowler.com]. Martinfowler.Com. https://martinfowler.com/articles/patterns-of-distributed-systems/
Mamatsashvili, G.-G., Ponichtera, K., Małkiński, M., Ganzha, M., & Paprzycki, M. (2020). Semantic-Based System for Exercise Programming and Dietary Advice. In L. C. Jain, M. Virvou, V. Piuri, & V. E. Balas (Eds.), Advances in Bioinformatics, Multimedia, and Electronics Circuits and Signals (Vol. 1064, pp. 105–120). Springer Singapore. https://doi.org/10.1007/978-981-15-0339-9_10
Snook, C., & Butler, M. (n.d.). UML-B AND EVENT-B: AN INTEGRATION OF LANGUAGES AND TOOLS. 6.
Butler, M. (2009). Decomposition Structures for Event-B. In M. Leuschel & H. Wehrheim (Eds.), Integrated Formal Methods (Vol. 5423, pp. 20–38). Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-642-00255-7_2
Abrial, J.-R., Butler, M., Hallerstede, S., Hoang, T. S., Mehta, F., & Voisin, L. (2010). Rodin: an open toolset for modelling and reasoning in Event-B. International Journal on Software Tools for Technology Transfer, 12(6), 447–466. https://doi.org/10.1007/s10009-010-0145-y
Calvaresi, D., Schumacher, M., & Calbimonte, J.-P. (2020). Agent-based Modeling for Ontology-driven Analysis of Patient Trajectories. Journal of Medical Systems, 44(9), 158. https://doi.org/10.1007/s10916-020-01620-8
Anne Francine Martins, Costa Affonso, R., Tamayo, S., Lamouri, S., & Baldy Ngayo, C. (2015). Relationships between national culture and Lean Management: A literature Review. 2015 International Conference on Industrial Engineering and Systems Management (IESM), 352–361. https://doi.org/10.1109/IESM.2015.7380183
Sokal, A., & Bricmont, J. (2004). Modne bzdury. O Nadużywaniu Pojęć z Zakresu Nauk Ścis\lych Przez Postmodernistycznych Intelektualistów.
Xu, S., Chen, X., Xie, J., Rahman, S., Wang, J., Hui, H., & Chen, T. (2020). Agent-based modeling and simulation of the electricity market with residential demand response. CSEE Journal of Power and Energy Systems, 1–12. https://doi.org/10.17775/CSEEJPES.2019.01750
Leech, G. (1983). Semantics: the study of meaning (Second edition). Harmondsworth : Penguin Books.
Enterprise Architecture Training in Aberdeen. (n.d.). Retrieved August 2, 2020, from https://www.nobleprog.co.uk/enterprise-architecture/training/aberdeen
Graics, B., Molnár, V., Vörös, A., Majzik, I., & Varró, D. (2020). Mixed-semantics composition of statecharts for the component-based design of reactive systems. Software and Systems Modeling. https://doi.org/10.1007/s10270-020-00806-5
Veizaga, A., Alferez, M., Torre, D., Sabetzadeh, M., Briand, L., & Pitskhelauri, E. (2020). Leveraging Natural-language Requirements for Deriving  Better Acceptance Criteria from Models. 11.
Sanchez Cuadrado, J., Burgueno, L., Wimmer, M., & Vallecillo, A. (2020). Efficient execution of ATL model transformations using static analysis and parallelism. IEEE Transactions on Software Engineering, 1–1. https://doi.org/10.1109/TSE.2020.3011388
Zhang, X., Dunn, S., Coates, G., & Hall, J. (2020). Emergency Evacuation from a Multi- floor Building using Agent-based Modeling. 12.
Bodine, E. N., Panoff, R. M., Voit, E. O., & Weisstein, A. E. (2020). Agent-Based Modeling and Simulation in Mathematics and Biology Education. Bulletin of Mathematical Biology, 82(8), 101. https://doi.org/10.1007/s11538-020-00778-z
Craver, C. F. (2007). Explaining the brain: mechanisms and the mosaic unity of neuroscience. Clarendon Press.
Marston, S., Li, Z., Bandyopadhyay, S., Zhang, J., & Ghalsasi, A. (2011). Cloud computing — The business perspective. Decision Support Systems, 51(1), 176–189. https://doi.org/10.1016/j.dss.2010.12.006
Simpson, T. W., Poplinski, J. D., Koch, P. N., & Allen, J. K. (2001). Metamodels for computer-based engineering design: survey and recommendations. Engineering with Computers, 17(2), 129–150.
Mesjasz, M. M., Ganzha, M., & Paprzycki, M. (2020). Modeling cyber-physical systems – a GliderAgent 3.0 perspective. Journal of Intelligent Information Systems. https://doi.org/10.1007/s10844-019-00588-3
Kogut, P., Cranefield, S., Hart, L., Dutra, M., Baclawski, K., Kokar, M., & Smith, J. (2002). UML for ontology development. The Knowledge Engineering Review, 17(1), 61–64.
James Human, & Azam M. Madni. (2014). Integrated Agent-based modeling and optimization in complex systems analysis | Elsevier Enhanced Reader. Procedia Computer Science, 28, 818–827. https://doi.org/10.1016/j.procs.2014.03.097
Gruber, T. R. (1993). A translation approach to portable ontology specifications. Knowledge Acquisition, 5(2), 199–220.
Götz, S., Fehn, A., Rohde, F., & Kühn, T. (2020). Model-driven Software Engineering for Construction Engineering: Quo Vadis? The Journal of Object Technology, 19(2), 2:1. https://doi.org/10.5381/jot.2020.19.2.a2
Gašević, D., Djurić, D., Devedzic, V., & Gašević, D. (2009). Model driven engineering and ontology development (2nd ed). Springer.
Cushing, R., Putra, G. H. H., Koulouzis, S., Belloum, A., Bubak, M., & de Laat, C. (2013). Distributed Computing on an Ensemble of Browsers. IEEE Internet Computing, 17(5), 54–61. https://doi.org/10.1109/MIC.2013.3
BPMDS (Workshop), Reinhartz-Berger, I., Zdravkovic, J., Gulden, J., Schmidt, R., EMMSAD (Workshop), & CAiSE (Conference). (2019). Enterprise, business-process and information systems modeling: 20th International Conference, BPMDS 2019, 24th International Conference, EMMSAD 2019, held at CAiSE 2019, Rome, Italy, June 3-4, 2019 : proceedings. https://public.ebookcentral.proquest.com/choice/publicfullrecord.aspx?p=5926895