What is model-driven development?
The Model Driven Development describes the model-driven application development based on an abstraction of the software requirements. The primary goal is to automate the development processes.
With the use of model-controlled methods, software developers aim for automation and the associated increase in productivity. Furthermore, model-driven development (MDD) – also model-driven software development (MDSD) or model-driven engineering (MDE) – should lower costs, reduce complexity and ultimately improve software quality .
In Model Driven Development, the models play a key role: unlike in conventional software development, they are not only used for documentation or analysis. Rather, the models here are primary development approaches that first generate the finished end product or system.
In the modeling process, development details are abstracted using models. The abstraction refers to those details that are of lesser relevance for the technical and functional domains (content areas) of a project. They can also be added automatically after generators. In contrast to manual implementation, this significantly reduces the creation of the software.
Model-processing workflows and generators enable automation that has a positive effect on software quality. For example, certain patterns can be repeatedly implemented using generators. Possible errors can be eliminated in generators.
Components and terms in model-driven development
In the context of model-driven software development, a number of technical terms and terms play an essential role. In the MDD, the term domain describes a specific area of responsibility or area of interest. The delimitation takes place, for example, professionally or technically. The domain is the area that is to be described by the respective model.
The formal description of the concrete structure of a certain domain is carried out using a so-called metamodel . The metamodel thus indirectly describes the structure of the models of the domain in the same way. The formal model represents the description of the domain itself. The structure of the formal model, in turn, is to be described by a metamodel.
If it is a formal description of the model of a domain, it is referred to as a meta-metamodel. In Model Driven Development, there is typically a model hierarchy made up of three levels: the model, the metamodel and the meta-metamodel.
With regard to the MDD syntax, a distinction must be made between abstract and concrete syntax. The description of the rules for precise and correct model construction on the basis of the metamodel is the task of the abstract syntax. The concrete syntax is used to establish concrete rules for the representation of the abstract syntax described above. The possibilities for implementing this representation include, for example, graphic or textual notations. The models are ultimately implemented on this basis.
Tools and tools in model driven development
The MDD is characterized by the use of numerous tools that help with modeling and automation. This includes, for example, graphic and textual modeling tools. Purely graphical modeling tools are used for purely graphical representation. They do not support automatic transformations.
If a model is to be further processed, it must first be transformed or exported into a format such as XMI or another textual exchange format. It can then be processed further with separate transformers.
Purely textual modeling tools, on the other hand, are based on Domain Specific Languages. In this way, they always support transformations (such as conversion into documents or into source code ).
Certain model languages have become established for modeling in various domains or areas. The use of a Domain Specific Language (DSL) improves communication between the various departments and between IT and the department. The freely definable and thus individual languages can be efficiently implemented in DSL development tools. The simple meta-model structure makes it suitable as a basis for code generators (as opposed to more complex languages such as the Unified Modeling Language UML ).
A distinction must be made between textual and graphic Domain Specific Languages. Textual DSLs have the strength that development and versioning take place with the same standard tools as the source code. This eliminates the additional time required for graphic modeling. On the basis of the textual models, graphical needs-based and precisely fitting visualizations can also be derived at any time.
Another group of tools in Model Driven Development are pure transformers. Their only task is to transform the models. Pure transformers typically do not have graphic modeling functions. The models are imported in a textual exchange format (usually XMI) before they are transformed into an internal model format. They can then be exported again.
There are also integrated tools for model driven development. These offer functionalities such as the modeling itself, the transformation and the code generation in just one tool. This avoids additional work steps such as export and import processes.
With integrated MDD tools, there are also no problems with compatibility when exchanging data. The synchronization between the technical and business model and the navigability between these models also benefit from integrated tools.