Model-driven engineering reduces the conceptual gap between the problem domains (such as navigation, grasping, or business process description) and the solution domains (programming). Modeling languages enables domain experts to describe solutions without facing the accidental complexities and idiosyncrasies of programming languages. For developing tailored domain-specific modeling languages, a well-suited and tailored language workbench is necessary. MontiCore is the language workbench we developed over the last years. We constantly extend and improve MontiCore to explore new ways for developing modeling languages and tools such as language composition or derivation. Besides improving languages workbenches and their development, methodologies, guidelines and pattern for modeling language engineering are essential to facilitate language engineering and improve the resulting modeling languages.
- Which features or concepts need to be provided by a language workbench to facilitate modeling language engineering? Which reusable languages or language components are essential and how to modularize these to optimize their reuse capabilities?
- Besides typical model processing infrastructure such as parser or well-formedness checkers, which tooling such as transformation or semantic differencing capabilities facilitate model-driven engineering?
- What are the software languages required for efficient systems engineering with domain experts? How are software languages engineered, integrated, and reused? How does this translate to modeling tools, synthesis, analyses, transformations, and code generators?
- How can we leverage language derivation to facilitate the development of supporting languages such as transformation, variability or tagging languages?
Currently, the modeling language engineering working group consists of:
Our research manifests in project results with large and small partners from industry and research, as well as in our publications. We’ve arranged our publications by topic for your convenience below:
- Generative Software Engineering
- Modeling Software Architectures
- Variability & Software Product Lines (SPL)
- Modeling for Cyber-Physical Systems (CPS)
- Compositionality & Modularity of Models & Languages
- Domain-Specific Languages (DSLs)
- Unified Modeling Language (UML)
- Software Language Engineering (SLE)
- Semantics of Modeling Languages