Klaus Mairon


Today the development of business applications is influenced by increased project complexity, shortened development cycles and high expectations in quality. Rising costs in the software development are an additional motivation to improve the productivity by the choice of a suitable development process. In the development of complex applications models are of great importance. Models reduce complexity by abstraction. Additionally, models offer the possibility to build different views onto an application. If models are sufficiently formal they are suitable for the automated transformation into source code. For this reason, an important acceleration and quality factor in the software development is attributed to the Model-Driven Software Development. On the other hand, Model-Driven Software Development requires quite high initial work for the definition of meta-models, domain-specific languages and transformation rules for the code generation process. A different approach to improve productivity is the use of agile process models like Scrum, Extreme Programming (XP) or Feature Driven Development (FDD). For these process models an early production of source code and the adjustment of executable partial results are important aspects of the process. The communication with the end user and the direct feedback are the most important success factors for a project and facilitate quick reactions on requirement changes. In agile methods modelling often plays a subordinated role. The requirements will be documented via “user stories” (XP) or “features” (Scrum, FDD). They are summarized either in Product- or Sprint-Backlogs (Scrum) or in Feature-Sets (FDD). From this, the idea is developed to apply agile work practices and techniques in a process tailored to model-driven development. First, existing process models for model-driven development are identified and described. Their common features such as process steps, artefacts and team organisation are worked out and abstracted in a metamodel. The aim is to reuse these process elements in a new agile process model. At the same time, suitable agile practices for modeling are identified, which can support such a process. Additional criteria and suggestions for the improvement of such a process are identified on the basis of case studies from practical model-driven projects. The Agile Model-Driven Method (AMDM) presents a combination of agile procedures and modelling techniques with the technology of model-driven development. AMDM is iteratively incremental and relies on proven concepts of accepted agile standards. AMDM integrates the development of a domain-specific modelling language, the modelling of problem domains and the development of the software architecture into a context. The development takes place in several cycles of sprints (iterations) which are distinguished in initial sprint, domain sprint and value sprint. Parallel to the development of domain language and application, the software architecture is developed evolutionarily and transferred to development. Finally, based on the mentioned case studies from the practice and investigations of model-driven projects in other industrial companies and business fields is checked how AMDM can contribute by agile concepts to increase efficiency in model-driven projects and how the expressed criticisms and problems from these studies can be avoided.

Document Type


Publication Date