Abstract
Model-based software engineering (MBSE) is used in research and industry for quite a while. After three decades of improving modeling techniques, concepts, and explicit modeling languages as well as understanding the usability and failures of modeling in development projects, this chapter summarizes the principal obstacles, achievements, and failures of MBSE projects from a personal perspective. We consider the use of MBSE as a failure in a development project, if the methodology fails to meet its goals with respect to the particular project. For example, some reasons for failures are as follows: developers initially decide not to use models (negative cost/benefit analysis), decrease in productivity (increase in development time), or decrease in software quality (e.g., decrease in maintainability, understandability, or performance). On the contrary, the use of MBSE in a development project is an achievement, if it succeeds to accomplish all desired goals with respect to the particular project. Besides the aspects mentioned above, this could also be increased analyzability of the system under development due to the introduced high-level abstraction of models.
Highlights
Using models is one of the primary techniques to understand and engineer the world
Already the ancient Greeks and Egyptians have built models of their worlds, including mathematical laws and a calendar system to predict the monsoon—it is barely imaginable that a pyramid could be built without extensive prior modeling
Construction manual) or have a rather formal appearance and a well-defined mathematical theory. With all this different forms of models in society, science, and engineering, it is not surprising that computer science developed its own idea of helpful models to design and understand software systems
Summary
Using models is one of the primary techniques to understand and engineer the world. Modeling is by far not an invention of software engineering. Construction manual) or have a rather formal appearance and a well-defined mathematical theory (e.g., differential equations for physics simulations) With all this different forms of models in society, science, and engineering, it is not surprising that computer science developed its own idea of helpful models to design and understand software systems. The development process is divided in phases, focusing on different artifacts, and iterations, allowing to start small and to improve the software in manageable steps Phases, such as understanding the problem ( called requirements elicitation), structuring the problem ( called requirements specification and high-level architecture definition), as well as precisely specifying the desired solution in smaller chunks (e.g., use case definition), do not result in programming artifacts but require various forms of models.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.