Humboldt-Universität zu Berlin - Faculty of Mathematics and Natural Sciences - Model Driven Software Development


 

Model Driven Software Development

Completed theses

 

 

  • Comparison and Differentiation of Model Transformation Rules Regarding Henshin as an Example
    Luka Germeyer
    Model transformations are a core part of model-based software engineering (MBSE). Specifications of transformations via dedicated model transformation languages therefore become primary development documents and are subjected to continuous changes during the whole MBSE project. Regarding this, tools for comparison and differentiation of specifications of model transformations are an essential part of MBSE development environments. But generic, text-based deviation algorithms are not suitable for visual model transformation languages. A particular challenge in this context constitutes in the comparison of transformation rules of the Henshin tool which is based on graph transformation concepts. This thesis aims on the design and development of a highly customized tool for comparison and differentiation of Henshin transformation rules. If possible, existing frameworks from the context of model versioning should be integrated. Also basic graph algorithms should be evaluated, regarding particularly their suitability to determine corresponding elements in transformation rules to be compared, e.g. diverse variants to identify the greatest common subgraphs.
     
  • Model-Based Code Refactoring Analysis for Semi-Automated Software Library Migration
    Michael Berger

    PDF

    Software libraries continuously make progress, causing functional extensions as well as changes of interfaces and program structure. Subsequently, each update of those libraries evokes maintenance efforts which cause the necessity of various adjustments of clients. Goal of this thesis is to optimally support application developers with such migrations. In order to do so, examinations should determine, how far changes of interfaces and structure between two library versions can be described as a chain of defined steps, so that identified operations can be used for semi-automated migration of clients. The comparison should take place on model level. This makes it necessary to convert projects into suitable models which exactly map those API parts which are needed for the identification of operations and for future migration steps. A prototype of an appropriate assistant tool should be realized as an Eclipse plug-in, basing upon the EMF-based frameworks Modisco, SiLift and Henshin.
     
  • Recommendation Systems in Software Engineering 
    SoSe 2018, Alexey Grachev,
    student research paper

    Recommendation systems in software engineering assist developers with different tasks, from the re-use of software artifacts up to the generation of bug reports. The variability of software systems und libraries and their fast development and increasing heterogeneity also affect the development of RSSEs. Thanks to the popularity of open source, a sufficient data base for data mining is available for RSSEs. RSSEs become an integral part of industrial developer tools. This work aims to overview existing RSSEs and provide a prediction of the further development in the near future.

 

  • Domain Model-Based Data Stream Validation for IoT Applications 
    2018, Simon Pizonka,
    master's thesis

    PDF

    With ongoing digitalisation, more and more devices are connected to the Internet. A lot of these devices are online 24/7 and sending continuous data. Such devices can be in the field for multiple years and, over this period, they must work reliably. This includes not only the hardware but also the processing and storage of data. In order to achieve this, it is necessary to continuously monitor incoming data. This thesis presents an approach as to how a domain model can be used for stream data validation. The used model allows for the definition of properties and functions of a device. These include defining constraints e.g. limiting the range of a value. The developed prototype allows loading this model in a stream processing system and validating structure and constraints in an unbound data stream. In a case study, the presented approach is tested on its ability to detect errors in an existing data set.

 

  • Round-Trip Migration von objektorientierten Datenmodell-Instanzen

    2018, Luca Mathias Beurer-Kellner, bachelor's thesis

    PDF

    In distributed software systems, a shared data model often represents the common denominator between components (e.g. database systems, applications, APIs). Over time, the data model must be changed in order to accommodate for new requirements. This evolution can often not be performed at the same time and completely, which implies that multiple versions of the same data model must be maintained. In order to further guarantee the successful interoperation between components of different version, it must be ensured that the model differences do not lead to loss of information or misinterpretation. A common solution to this problem is to design data model changes in backward compatible fashion. In this thesis, we propose an alternative solution to this problem by introducing a translation layer between components of different data model version. This allows for greater flexibility when changing data models, since is does not require backward compatibility. We introduce the term of successful round-trip migrations, which describes the lossless forth-and-back translation of data model instances between versions. Based on an object-oriented data modelling language, we present a framework for the execution and implementation of round-trip migrations. During our work, we have identified traceability, as known from model-driven engineering, as a core requirements to allow for successful round-trip migrations. We furthermore present a catalogue of so-called round-trip migration scenarios, which discusses various challenges that need to be faced when implementing round-trip migrations. In order to evaluate our approach, we carried out a case study by implementing a translation layer for a real-world data model. Using our framework and the scenario catalogue, we were successful in implementing a translation layer which guarantees a successful round-trip migration of instances. Based on these results, we were able further verify our framework, our scenario catalogue and the general concept of round-trip migrations. However, overall we have also identified limits to the idea of round-trip migrations, especially with regard to the set of possible data model changes. We see potential in the idea of round-trip-migrating translation layers, as it allows for non-backward compatible data model changes, while maintaining system interoperability. Future work will show how the applicability of such layers is to be estimated in a real-world production environment.

 

  • A model-based approach to resolve syncronization conflicts of IoT devices

    WS 2017/18, Simon Pizonka, student research paper

    The AWS IoT Device SDK for Python (and other languages) rejects changes to the device shadow when there is no internet connection. The goal is to implement dierent autonomous merge strategies to overcome this limitation. This report presents design and prototype implementation of a basic ORM (object-relational mapping) for a AWS Thing Shadow and how to create objects with a model driven approach with Eclipse Vorto.

 

  • Detecting and Resolving Inconsistencies in a Distributed Multi-View Software Modeling Environment
    2017, Manuel Ohrndorf, master's thesis

    PDF

    In software development, models are used for system analysis and design. In model-driven software development, models are primary artifacts and the formal basis for the system implementation. A model is an abstraction layer which conceals the technical target platform. This increases the re-usability of the developed components. However, this requires the definition of a formal syntax and semantics for the modeling language. Models are usually expressed from various viewpoints, e.g. the data structure and a user interaction. A multi-view modeling environment can be used to build complex system models. A viewpoint can also be constructed by slicing a specific part of the model. This can be helpful in distributing and processing large models across a development team. However, a developer can inadvertently introduce inconsistencies between different views. Ensuring the correctness of a model is a key task of the development process. Therefore, the developers need fully-fledged tool support to deal with inconsistencies. This work presents an approach to the repair of inconsistencies in a distributed multi-view modeling environment. The introduced tool determines repairs based on user-defined edit rules. To understand the cause of an inconsistency, the repair algorithm considers the modifications which have introduced the inconsistency.