Generative Software Development
This work targets software engineers by providing an incremental overview of generative methods in model-based development, without introducing new breakthroughs.
The paper addresses the paradigm of generating software from modeling languages like UML and domain-specific languages (DSLs), covering the development of DSLs and models to produce executable code, test cases, or transformed models, and discusses modular approaches for managing DSL complexity.
Generation of software from modeling languages such as UML and domain specific languages (DSLs) has become an important paradigm in software engineering. In this contribution, we present some positions on software development in a model based, generative manner based on home grown DSLs as well as the UML. This includes development of DSLs as well as development of models in these languages in order to generate executable code, test cases or models in different languages. Development of formal DSLs contains concepts of meta-models or grammars (syntax), context conditions (static analysis and quality assurance) as well as possibilities to define the semantics of a language. The growing number and complexity of DSLs is addressed by concepts for the modular and compositional development of languages and their tools. Moreover, we introduce approaches to code generation and model transformation. Finally, we give an overview of the relevance of DSLs for various steps of software development processes.