Model-Driven Software Engineering of Evolving Software
Context
Model-Driven Software Engineering (MDSE) aims at increasing the automation when developing complex software. The usage of (formal) models to express (parts of) the software raises the level of abstraction which benefits not only understanding, planning the development of the software system and its generation but also analyzing it. Model transformations represent the key instrument to automate tasks of generating source code and keeping the information in various heterogeneous software artifacts consistent.
Particularly for evolving software, transformations and similar techniques are substantial to maintain the software over time but lack from shortcomings which can be addressed in the following topics.
Topics
Potential thesis topics lie in the area of
- model transformations (e.g., implemented with general purpose languages, comparisons, ….)
- traceability among artifacts
- reverse engineering models from source code
- low-code and no-code platforms
- DSL engineering
and they may include the intersection with software product line engineering.
Minimally Required Skills
- Good programming skills.
- Experience with working with Eclipse and ideally with the Eclipse Modeling Framework are beneficial.
Specific skills depend on the concrete topic
Remark
Concrete topics for a bachelor or master thesis can be discussed with Sandra Greiner.
Further Reading
- Brambilla, M., Cabot, J., & Wimmer, M. (2017). Model-driven software engineering in practice. Morgan & Claypool Publishers; https://doi.org/10.1007/978-3-031-02549-5
- Wasowski, A. and Berger. T. (2023). Domain-Specific Languages: Effective modeling, automation, and reuse; http://dsl.design/