Meta Modeling & Modeling Language Engineering
Software engineers use modeling languages to formulate models. Models are used to express complex matters in the context of software development projects. By means of abstraction, models help the software engineer to focus on the relevant aspects of a problem and ignore the irrelevant ones. In the context of the Object Management Group's (OMG) Model Driven Architecture (MDA), models are input to a series of transformations that finally result in executable source code, expressed in a programming language. In the context of project management, models can be used to establish mutual understanding of requirements, risks, business goals, and business processes. Apart from this basic discrimination, models in both areas serve the purpose of establishing means for communication between software engineers as well as with clients. The UML (Unified Modeling Language) and the SysML (Systems Modeling Language) are two modeling languages that are currently well-established in the field.
Besides researching how modeling languages can benefit the software development process, we are also interested in understanding how modeling languages can be designed. Meta-models are models that are an abstraction of other models (and thus describe models). They can be used to define both syntax and semantics of a modeling language. While focusing on the use of meta-models as one method to define a modeling language, we contrast them to other well-known methods as Chomsky Grammars and graph grammars.
Completed Ph.D. theses