VIEW ARTICLE

Model Driven Software Development

Author: Arun Verma
Category: Programming
Section: Tech.Architecture
Related Questions: 0 Login to Bookmark
Submitted On: 7/7/2017
Published On: 7/10/2017
ABSTRACT: This article discusses about software development that is driven by software architecture model.

Model-driven software development enables you to visualize the software; put lot of deep thought, considerations and a lot more into it, and hence a Thought-driven development.


Model-driven software development (MDSD) is an alternative to round-trip engineering. As explained by Thomas Stahler and Markus Voelter in their book, the difference relates to the level of abstraction of the model in each case, compared to the code:

Round-trip engineering is the concept of being able to make any kind of change to a model as well as to the code generated from that model. The changes always propagate bidirectionally and both artifacts are always consistent. The transition from code to model (the reverse engineering) is especially interesting in this context.
Model is actually the visualization of a program's structure. In such a scenario, it is both feasible and useful to track changes to the code in the model automatically.

MDSD takes a different approach: the model is definitely more abstract than the code generated from it. Thus it is generally impossible to keep the model consistent automatically after a manual change of the generated code. For this reason, manual changes to generated code should be avoided. A precise definition that states which parts are generated and which are implemented manually is therefore necessary.

Stahler and Voelter suggest four ways by which the same goal can be achieved in MDSD without requiring round-trip engineering:

  • Abstraction: The abstraction level of decisions is raised to model level. This only makes sense if a corresponding abstraction on the model level can be identified.
  • Tagging the model: This involves moving code-level decisions into the model without raising the abstraction level. This procedure is called 'tagging' the model with implementation decisions.
  • Separation of code classes: This involves the adaptation of the target architecture in such a way that manually created code must be written into classes specifically created for this purpose.
  • Tagging the code: This consists of the introduction of protected regions to the code, and is accomplished through the use of special tags that protect the code placed between them from overwriting during regeneration.


Go to Top
Model Driven Software Development

Related Questions...(0) Ask A Question

Ask a Question

Go to Top