Direkt zum InhaltDirekt zur SucheDirekt zur Navigation
▼ Zielgruppen ▼
 

Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Modellgetriebene Software Entwicklung

 

Modellgetriebene Software Entwicklung

Abgeschlossene Arbeiten

 

  • Empfehlungssysteme im Software Engineering
    SoSe 2018, Alexey Grachev, Studienarbeit

    Empfehlungssysteme im Software Engineering (Recommendation Systems in Software Engineering) haben die Aufgabe Entwicklern bei verschiedenen Aufgaben zu unterstützen, von der Wiederverwendung von Software-Artefakten bis zur Erstellung von Bug Reports. Die Vielfältigkeit von Software Systemen und Bibliotheken und ihre rapide Weiterentwicklung und immer steigende Heterogenität beeinflussen auch die Entwicklung von RSSEs. Dank der Popularität von Open Source haben RSSEs eine ausreichende Datenbasis für das Data Mining. RSSEs sind dabei, ein fester Bestandteil von industriellen Entwickler-Werkzeugen zu werden. Das Ziel dieser Studienarbeit ist, die bestehenden RSSEs zu überblicken und eine Prognose zu liefern, in welche Richtung sie sich in naher Zukunft entwickeln werden.

 

  • Domain Model-Based Data Stream Validation
    for IoT Applications, 2018, Simon Pizonka,
    Masterarbeit

    PDF

    In der Softwareentwicklung werden Modelle zur Analyse und zum Entwurf des zu implementierenden Systems eingesetzt. Die modellbasierte Softwareentwicklung macht Modelle zu zentralen Entwicklungsartefakten, welche die formale Grundlage für die Erzeugung der Implementierung bilden. Auf diese Weise wird zunächst von der technischen Zielplattform abstrahiert, was die Wiederverwendbarkeit des entwickelten Systems vereinfacht. Das erfordert allerdings die Festlegung einer formalen Syntax und Semantik für die Modellierungssprache. Außerdem kann das System aus verschiedenen Sichten modelliert werden (z.B. Datenstrukturen und Benutzerinteraktion), um die Komplexität des Modells zu reduzieren. Bei der verteilten Bearbeitung großer Modelle durch ein Entwicklerteam kann es darüber hinaus hilfreich sein einen Modellausschnitt als temporäre materialisierte Sicht zu erzeugen, um diesen isoliert zu bearbeiten. Wenn ein Entwickler allerdings nicht alle Teile eines Modells überblickt, kann es leicht zu Inkonsistenzen zwischen verschiedenen Sichten kommen. Die Sicherstellung der Korrektheit eines Modells ist eine zentrale Aufgabe im Entwicklungsprozess, bei der die Entwickler durch entsprechende Werkzeuge unterstützt werden sollten. Diese Arbeit präsentiert einen Ansatz zur Reparatur von Inkonsistenzen in Modellen bzw. Modellsichten. Das hier vorgestellte Reparaturwerkzeug ermittelt Reparaturen auf Basis benutzerdefinierter Editierregeln. Insbesondere werden die durchgeführten Modifikationen betrachtet, um die Ursache einer Inkonsistenz besser zu verstehen.

 

 

  • Round-Trip Migration von objektorientierten Datenmodell-Instanzen

    2018, Luca Mathias Beurer-Kellner, Bachelorarbeit

    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, Studienarbeit

    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.

 

  • Behandlung von Inkonsistenzen in der verteilten Bearbeitung materialisierter Sichten im Kontext der modellbasierten Softwareentwicklung
    2017, Manuel Ohrndorf,
    Masterarbeit

    PDF

    In der Softwareentwicklung werden Modelle zur Analyse und zum Entwurf des zu implementierenden Systems eingesetzt. Die modellbasierte Softwareentwicklung macht Modelle zu zentralen Entwicklungsartefakten, welche die formale Grundlage für die Erzeugung der Implementierung bilden. Auf diese Weise wird zunächst von der technischen Zielplattform abstrahiert, was die Wiederverwendbarkeit des entwickelten Systems vereinfacht. Das erfordert allerdings die Festlegung einer formalen Syntax und Semantik für die Modellierungssprache. Außerdem kann das System aus verschiedenen Sichten modelliert werden (z.B. Datenstrukturen und Benutzerinteraktion), um die Komplexität des Modells zu reduzieren. Bei der verteilten Bearbeitung großer Modelle durch ein Entwicklerteam kann es darüber hinaus hilfreich sein einen Modellausschnitt als temporäre materialisierte Sicht zu erzeugen, um diesen isoliert zu bearbeiten. Wenn ein Entwickler allerdings nicht alle Teile eines Modells überblickt, kann es leicht zu Inkonsistenzen zwischen verschiedenen Sichten kommen. Die Sicherstellung der Korrektheit eines Modells ist eine zentrale Aufgabe im Entwicklungsprozess, bei der die Entwickler durch entsprechende Werkzeuge unterstützt werden sollten. Diese Arbeit präsentiert einen Ansatz zur Reparatur von Inkonsistenzen in Modellen bzw. Modellsichten. Das hier vorgestellte Reparaturwerkzeug ermittelt Reparaturen auf Basis benutzerdefinierter Editierregeln. Insbesondere werden die durchgeführten Modifikationen betrachtet, um die Ursache einer Inkonsistenz besser zu verstehen.