The generator framework MontiGem

The MontiGem framework allows developers to generate large parts of a web application for a domain specific information system based on a set of input models. MontiGem can handle models in different Domain-Specific Languages (DSLs) as input. The used DSLs are based on MontiCore, a language workbench and development tool framework for defining DSLs. Currently, the generator handles the following set of models: the domain model defined as UML Class Diagram (CD) [GMN+20], data models (views on the data structure), GUI models representing the graphical interfaces [GMNR21], tagging models for the addition of rights and roles, and models defined with the Object Constraint Language (OCL) to define restrictions on the data model and data input validation in the GUI. The generated parts include the database, the backend, the communication between application backend and the frontend and graphical user interfaces.

To support the retrofitting of existing applications, we have developed a methodology with three phases: problem analysis and decomposition, domain-specific language engineering, and application engineering and operation [DGM+21]. We show this methodology using a concrete example from practice, namely an information system, and discuss challenges with and lessons learned from the practical application.

We are using MontiGem in a series of projects and application domains, e.g., energy management systems, platforms to support the engineering of wind turbines, cockpits for self-adaptive digital twins [DMR+20] within the Cluster of Excellence Internet of Production, a platform to manage and control chair finances, staff, and projects within the MaCoCo project, or a platform for improving the understandablity of privacy policies of smart watches within the InviDas project.

Selected publications