print · source · login   

Theme: Model-based Software Engineering

Model-based software engineering (MBSE) is an advanced software development paradigm, in which models not just auxiliary artifacts, but first-class citizens throughout the development process. These models can be created using general-purpose languages such as UML, as well as domain-specific languages that are tailored to the application domain at hand. MBSE offers various advantages to companies, such as (i.) the possibility to analyze the system with regard to important properties (like safety, security, and performance), even before the system is implemented and deployed; (ii.) improved long-term system maintenance by decoupling domain concepts from underlying technology knowledge; and (iii.) automated generation of implementation prototypes based on an available code generators and transformation tools.

We are interested in all aspects of MBSE. Available thesis topics in current areas of interest are listed below. If you are interested in any of these topics or other topics related to MBSE, please contact Daniel Strüber.

Model-based software engineering for optimization technologies

Optimization is a concern of relevance in many societal sectors, including healthcare, logistics, and education. There is a wealth of optimization technologies available which could be helpful for decision-makers, but choosing an appropriate one and customizing it to the domain at hand requires significant technical expertise. In previous work, we introduced Model-based Search Engineering as a paradigm that leverages models to significantly reduce the required learning curve for applying optimization technologies in a given application domain.

The following thesis topics are focused on advancing this new paradigm:

  • Automated generation of search operators. A promising paradigm are meta-heuristic search approaches, which mimic the biological process of evolution to create a population of solutions, in which optimal ones are identified. The goal of this project is to automatically generate suitable mutation and cross-over operators for a given optimization problem.
  • A benchmark set of optimization problems. To enable a systematic advancement during the development of model-based search approaches, we need a benchmark set of available optimization problems. Such a benchmark set would consist of a framework to support the evaluation and comparison of approaches, and a dataset of available problems, expressed as instances of the framework.

Model-based software engineering for variant-rich software systems

Many systems today are developed as variant-rich systems: They come in a significant number of variants, sharing some parts of their implementations, while differing in others. A common strategy to develop a variant-rich system involves the explicit specification of a feature model, giving an overview of the features implemented in each variant, and the use of implementation techniques that support variant-specific changes on the implementation level. Models can support the development of variant-rich systems by providing a high-level view of the system with its variant-specific implementation components.

In this context, the following thesis topics are available:

  • Model transformation of software product lines. (Reserved) In the standard MBSE scenario, models are transformed in manifold ways, e.g., to refactor, optimize or refine them. The automated transformation of models is supported by a wealth of available transformation tools. The goal of this thesis project is to extend an existing model transformation language to support combined changes to two the involved artifacts in a variant-rich system: a feature model and an system model. This would allow to better support the development and analysis of an evolving variant-rich system.
  • Control-flow variability in model transformations. In previous work, we considered the scenario that the model transformation itself is a variant-rich system. We extended a given transformation language so that it supports the specification of variant-specific differences, and allows an efficient execution of such transformations by considering shared parts only once, rather than for each variant individually. However, our extension only considered the rule-based part of the considered transformation language. The goal of this project is to further extend the language, so that variations in the control-flow language used to orchestrate the rules are supported as well.
  • Model checking of variant-rich systems based on graph transformations. (Reserved) Graph transformations have a rich tradition for modeling systems with some notion of change. Various approaches are available to automatically verify a given transformation system based on model checking tools. The goal of this project is to extend a model checking tool so that it can scale up to variant-rich systems when they are modeled using graph transformations.

Model-based software engineering for new emerging paradigms of software systems

Various success stories are available for MBSE in well-known software domains with established best practices, such as embedded systems, telecommunication systems, and web applications. We are further interested in applications to emerging paradigms.

Specifically, the following thesis topics are available:

  • Analyzing decision-making software with regard to discrimination. In the age of machine learning, important legal and operational decisions are made based on massive available data sets. To ensure a responsible processing of data, the goal of this project is to explore the use of models, combined with available data, to support the analysis of systems with regard to discrimination.
  • Modeling conversational AI systems. In various domains such as messaging apps, social media platforms, and automotive interaction systems, we now see the use of conversational AI systems as a means to establish customized consumer experiences. Companies interested in using such systems rely on a large variety of available conversational AI platforms, which, however, all differ in their available features and specification formats. The goal of this project is to enable the model-based development of a conversational AI system by supporting a high-level, model-based specification of the AI system as well as an automated transformation to one or several back-ends.