Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| arch:modelingpracticalusage [2021/10/13 17:51] – created nmsuvorov | arch:modelingpracticalusage [2026/08/29 07:59] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| ===== Current usage of modeling in practice ===== | ===== Current usage of modeling in practice ===== | ||
| - | To start with, it is necessary to define what visual modeling languages are currently used in software engineering and what is their purpose. Such languages may include UML [1] for designing software systems, BPMN [2] and DFD [3] for modeling business processes and ERD [3] for designing databases. Despite of the existence of various visual modeling languages, UML has been heralded by many as the “de-facto standard” [4] and “the lingua franca” [5,6] of software engineering. One of the reasons is that this notation can be used for all the aforementioned purposes: UML activity diagrams can be used to model business processes, UML class diagrams can be used for designing databases and simultaneously various UML diagrams can be used for designing the architecture. However, other notations are still in use: for instance, data flow and entity relation diagrams are still broadly used by people who follow Structured Systems Analysis and Design Method (SSADM) [7] while the BPMN is currently the leading standard for process mining [8]. Nevertheless, | + | To start with, it is necessary to define what visual modeling languages are currently used in software engineering and what is their purpose. Such languages may include UML [1] for designing software systems, BPMN [2] and DFD [3] for modeling business processes and ERD [3] for designing databases. Despite of the existence of various visual modeling languages, UML has been heralded by many as the “de-facto standard” [4] and “the lingua franca” [5,6] of software engineering. One of the reasons is that this notation can be used for all the aforementioned purposes: UML activity diagrams can be used to model business processes, UML class diagrams can be used for designing databases and simultaneously various UML diagrams can be used for designing the architecture. However, other notations are still in use: for instance, data flow and entity relation diagrams are still broadly used by people who follow Structured Systems Analysis and Design Method (SSADM) [7] while the BPMN is currently the leading standard for process mining [8]. Nevertheless, |
| - | There are several surveys which examine the usage of UML in real software projects and most of them show that this notation is rarely consistently used: both in sense of the full use in all projects and in sense of using the UML on all the stages of development. According to [9], more than 60% of respondents, | + | There are several surveys which examine the usage of UML in real software projects, and most of them show that this notation is rarely consistently used: both in sense of the full use in all projects and in sense of using the UML on all the stages of development. According to [9], more than 60% of respondents, |
| According to [10], most of respondents who use UML selectively use it for as long as it is considered useful, after which it is set aside or even discarded. Thus, the UML is mostly used at the early design stage and at the process of elicitation of requirements. However, some customers require including UML diagrams into technical documentation, | According to [10], most of respondents who use UML selectively use it for as long as it is considered useful, after which it is set aside or even discarded. Thus, the UML is mostly used at the early design stage and at the process of elicitation of requirements. However, some customers require including UML diagrams into technical documentation, | ||
| Line 17: | Line 17: | ||
| As for diagram types, there are 3 main UML diagrams which are currently used in industry: class diagrams, sequence diagrams and activity diagrams [10]. Class diagrams are primarily used to represent architecture, | As for diagram types, there are 3 main UML diagrams which are currently used in industry: class diagrams, sequence diagrams and activity diagrams [10]. Class diagrams are primarily used to represent architecture, | ||
| - | It is worth mentioning that UML can also be used in code generation. In this situation developers usually deal only with models which helps to ensure high quality of programs and prevent errors. CASE-tools are mainly used for these purposes: they automate the process of system development due to possibilities of visual modeling, interpretation of models and/or code generation based on the created models. IBM Rational Software Architect, MagicDraw and Papyrus are mainly used for these purposes [11]. As for Russian developments, | + | It is worth mentioning that UML can also be used in code generation. In this situation developers usually deal only with models which helps to ensure high quality of programs and prevent errors. CASE-tools are mainly used for these purposes: they automate the process of system development due to possibilities of visual modeling, interpretation of models and/or code generation based on the created models. IBM Rational Software Architect, MagicDraw and Papyrus are mainly used for these purposes [11]. As for Russian developments, |
| ===== Limitations which users face ===== | ===== Limitations which users face ===== | ||
| To understand why the usage of modeling in enterprise is not so widely spread nowadays, it is needed to look at limitations of tools used for modeling. Despite of the modeling notation used, there are some user requirements which are common for all the tools which implement modeling notations. There are certain papers, such as [14, 15], which define such requirements for modeling tools. Among the main requirements the following can be highlighted: | To understand why the usage of modeling in enterprise is not so widely spread nowadays, it is needed to look at limitations of tools used for modeling. Despite of the modeling notation used, there are some user requirements which are common for all the tools which implement modeling notations. There are certain papers, such as [14, 15], which define such requirements for modeling tools. Among the main requirements the following can be highlighted: | ||
| + | |||
| * the ability to use different languages, | * the ability to use different languages, | ||
| * the ability to perform simulation modeling, | * the ability to perform simulation modeling, | ||
| Line 29: | Line 30: | ||
| * possibility of group work on models, | * possibility of group work on models, | ||
| * ease of using the product. | * ease of using the product. | ||
| + | |||
| In addition, the paper [15] notes the importance of the integration capabilities of the modeling system as well as the importance of monitoring model changes and controlling model versions. | In addition, the paper [15] notes the importance of the integration capabilities of the modeling system as well as the importance of monitoring model changes and controlling model versions. | ||
| Generally, no tool satisfies all these requirements, | Generally, no tool satisfies all these requirements, | ||
| + | |||
| * lack of checks for redundancy and quality of models, which provides users with possibility to construct difficult-to-understand models, which can often contain errors [16], | * lack of checks for redundancy and quality of models, which provides users with possibility to construct difficult-to-understand models, which can often contain errors [16], | ||
| * lack of support for connections between models and model elements, which means that when changing one model, it is necessary to manually update all the models associated with the source one [10], | * lack of support for connections between models and model elements, which means that when changing one model, it is necessary to manually update all the models associated with the source one [10], | ||
| * lack of possibilities for developing own languages or using several languages at the same time, whereas software development rarely handles without the simultaneous use of various notations [10]. | * lack of possibilities for developing own languages or using several languages at the same time, whereas software development rarely handles without the simultaneous use of various notations [10]. | ||
| + | |||
| Although some people prefer to use a paper and a pencil to generate diagrams, some of these limitations influence them, too. The most obvious restriction in this case is the necessity to draw a model from scratch if something needs to be changed. Currently this limitation significantly restricts the usage of modeling notations without regard what is used for model generation, as most of the projects are currently done in Agile methodology where requirements fluctuate during the whole development process which requires to update all the models regularly and check that all of them are still consistent. That is why, according to [9] consistent modeling is primarily used only in projects with relatively high development cost, where most of the possible risks must be avoided. | Although some people prefer to use a paper and a pencil to generate diagrams, some of these limitations influence them, too. The most obvious restriction in this case is the necessity to draw a model from scratch if something needs to be changed. Currently this limitation significantly restricts the usage of modeling notations without regard what is used for model generation, as most of the projects are currently done in Agile methodology where requirements fluctuate during the whole development process which requires to update all the models regularly and check that all of them are still consistent. That is why, according to [9] consistent modeling is primarily used only in projects with relatively high development cost, where most of the possible risks must be avoided. | ||
| ===== Conclusion ===== | ===== Conclusion ===== | ||
| - | Unfortunately, | + | Unfortunately, |
| ===== References ===== | ===== References ===== | ||
| + | |||
| - OMG Unified Modeling Language (OMG UML) Specification, | - OMG Unified Modeling Language (OMG UML) Specification, | ||
| - OMG Business Process Model and Notation (BPMN) Specification, | - OMG Business Process Model and Notation (BPMN) Specification, | ||
| Line 53: | Line 58: | ||
| - Marian P., “UML in practice, | - Marian P., “UML in practice, | ||
| - Planas E., Cabot J., “How are UML Class Diagrams built in practice? A usability study of two UML tools: MagicDraw and Papyrus,” Computer Standards & Interfaces, vol. 67, pp. 1-13, 2020. | - Planas E., Cabot J., “How are UML Class Diagrams built in practice? A usability study of two UML tools: MagicDraw and Papyrus,” Computer Standards & Interfaces, vol. 67, pp. 1-13, 2020. | ||
| - | - CASEBERRY. О продукте CASEBERRY. URL: https:// | + | - CASEBERRY. О продукте CASEBERRY. URL: [[https:// |
| - | - Flexberry platform. Архитектура. URL: https:// | + | - Flexberry platform. Архитектура. URL: [[https:// |
| - Sannikova A.Yu., “Modeling of business processes of customer relationship management, | - Sannikova A.Yu., “Modeling of business processes of customer relationship management, | ||
| - Berdonosov V. and Redkolis E., “TRIZ-fractality of computer-aided software engineering systems,” Procedia Engineering, | - Berdonosov V. and Redkolis E., “TRIZ-fractality of computer-aided software engineering systems,” Procedia Engineering, | ||
| - Gruhn V. and Laue R., “Reducing the Cognitive Complexity of Business Process Models,” Proceedings of the 8th IEEE International Conference on Cognitive Informatics, | - Gruhn V. and Laue R., “Reducing the Cognitive Complexity of Business Process Models,” Proceedings of the 8th IEEE International Conference on Cognitive Informatics, | ||
| - Rumpe B., “Agile Modeling with UML,” Cham: Springer International Publishing, 388 p., 2017. | - Rumpe B., “Agile Modeling with UML,” Cham: Springer International Publishing, 388 p., 2017. | ||