Fields of research
Model-driven software development
A new promising paradigm is the model-driven software development which lets us expect a better control of software complexity and a higher software quality. Applications are developed on a high abstraction level using domain-specific models. These models form the input for automatic code generation of the proper application. We focus on approaches for model-driven software development based on the Eclipse Modeling Framework (EMF).
New concepts for model-driven software development
Meta-modeling and graph grammars. Model-driven development lifts software development to a higher level of abstraction. Models are now the central artifacts of development. Early approaches were primarily based on variants of the Unified Modeling Language (UML) as visual modeling language. A much fitter solution are domain-specific modeling languages individually tailored to a specific application domain. Domain-specific modeling languages can be defined using meta-models or graph grammars. In our project meta-modeling and graph grammars, we investigate the relationships between these contrary definition approaches for visual modeling languages.
Model transformation. Model transformation is a core concept of model-driven development. We distinguish exogenous model transformations on the one hand, translating or converting models from one into another language, and endogenous model transformations on the other hand, optimizing, simulating or, in general terms, changing models within one language. The Henshin project aims at providing a language and toolkit for the transformation of EMF-based models.
Model versioning. As central artifacts of model driven development, models are subject to constant change. Hence, model-driven development requires adequate tool support for model versioning. Currently available tools operate on low-level representations of models. These representations are noisy in terms of details being rrelevant and hard to comprehend for the end-user. The goal of the MOCA project is to lift versioning concepts, algorithms, and tools from the currently low to a higher, user-comprehensible level.
Distributed model-driven development. The rising trend towards geographically and organisatorically distributed software projects confronts model-driven development with new challenges. In the DMDD project, we investigate concepts, processes, and tools for a distributed model-driven development.
Development of infrastructures for model-driven software development
Infrastructures for various application domains. The underlying notion of model-driven development is applicable to a broad variety of different software domains. Typical application domains are web applications and embedded systems. The model-driven development of these applications and systems requires dedicated development infrastructures comprising user-friendly editors for the domain-specific modeling language and a code generator. The goal of our PIMAR project is to develop an infrastructure for the platform-independent development of applications for mobile devices. These applications may include elements of augmented reality such as automated localization of the user as well as image and sound recognition. Furthermore, we are investigating the development of an infrastructure for the model-driven development of content management systems.
Syntactical model quality assurance. To date, software quality assurance has primarily focused on code. However, the first-class citizens in model-driven software development are models. Any generated code can only be as good as the model that is used as input for code generation. Hence, it is important to provide high-quality models. We focus on syntactical quality assurance techniques such as modeling conventions, bad model smells, and model refactoring. One of our main fields of expertise is quality assurance for UML models. The EMF Refactor project aims at developing a flexible tool environment for the structured quality assurance of EMF-based models.