In the first part of this book we came to know the practical side of MDSD, and in Chapter 2 we defined a domain architecture – the core concept of MDSD. The case study demonstrated what a domain architecture can look like in practice.
In this part of the book, we discuss the construction of domain architectures. In this context we address technical questions, rather than questions that relate to the development processes: the latter are detailed in Part III. A central question will be: ‘Which engineering approaches can be recommended for finding DSLs?’
The next five chapters introduce techniques and best practices that are relevant for the development of domain architectures, beginning with metamodeling as the key to DSL definition. This is followed by the special role of target software architecture in the context of MDSD and the details of model-to-model transformations and code generation.
Many of the fairly technical questions with which a domain architect is confronted, such as those concerning code generation, are generic – that is, they are for the most part domain-independent. In other words, many problems can be solved with generic tools that can be reused in any, or at least related, domains. Chapter 11, on tool selection and architecture, gives you some background in that respect. The principles and best practices conveyed there are suitable for construction as well as for selecting MDSD tools, and are therefore not restricted to those developing ...