Model-Based Design

Model-Based Design (MBD) is a mathematical and visual method of addressing problems associated with designing complex control,[1][2] signal processing[3] and communication systems. It is used in many motion control, industrial equipment, aerospace, and automotive applications.[4][5] Model-based design is a methodology applied in designing embedded software. https://en.wikipedia.org/wiki/Model-based_design

Model-Driven Software Engineering in Practice (MDSE) https://mdse-book.com/

  • Clearly, DDD (domain-driven design) shares many aspects with MDE. Both argue the need of using models to represent the knowledge of the domain and the importance of first focusing on platform independent aspects (using the MDA terminology) during the development process. In this sense, MDE can be regarded as a framework that provides the techniques to put DDD in practice (to model the domain, create DSLs that facilitate the communication between domain experts and developers if needed, etc.). At the same time, MDE complements DDD by helping developers to benefit even more from the domain models. Thanks to the model transformation and code generation techniques of MDE, the domain model can be used not only to represent the domain (structure, rules, dynamics, etc.) but also to generate the actual software system that will be used to manage it.

Martin Fowler: The approach (MDSD - Model-Driven Software Development) centers itself on building models of a software system. These models are typically made manifest through diagrammatic design notations - the UML is one option. The idea is that you use these diagrams, to specify your system to a modeling tool and then you generate code in a conventional programming language. The MDSD vision evolved from the development of graphical design notations and CASE tools... Although I've been involved, to some extent, in MDSD for most of my career, I'm rather skeptical of its future.


Edited:    |       |    Search Twitter for discussion