Different approaches to Model-Driven Software Development exist, as we have seen in part and will see further in this chapter. Each approach comes with its own terminology, a phenomenon that is largely the result of differing intentions and histories. This is not really critical in practice, but it can lead to confusion and hamper communication. We therefore aim to create a common, conceptual superstructure, a unified MDSD terminology. We believe that this is helpful in gaining a deeper insight into the subject matter of this book and as a basis for further chapters.
4.1 Common MDSD Concepts and Terminology
Certain techniques, sub-areas or specific flavors of MDSD are not at all new. Terms like ‘generative programming’, ‘domain-specific modeling’, ‘product-line engineering’, and especially ‘code generation’ have been established for a long time. although they vary greatly in popularity. The OMG started a standardization process for certain core concepts with its MDA initiative, albeit with a primary focus on interoperability and portability. The MDA soon achieved a comparatively high degree of popularity and thus overshadowed the techniques listed above to a certain extent, yet without entirely overshadowing them. We therefore recognize the need for a unified common context, including its terminology, and we venture to create both. This conceptual context is Model-Driven Software Development, and the standard nomenclature of the OMG will serve as a basis ...