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

 

 

  • Abgleich und Differenzierung von Modelltransformationsregeln am Beispiel Henshin
    Luka Germeyer
    Modelltransformationen sind ein Kernbestandteil der modellbasierten Softwareentwicklung (MBSE). Spezifikationen von Transformationen mittels dedizierter Modelltransformationssprachen werden daher zu primären Entwicklungsdokumenten und unterliegen ständigen Änderungen über die gesamte Dauer eines MBSE-Projekts. Werkzeuge zum Abgleich und zur Differenzierung von Spezifikationen von Modelltransformationen sind daher essentieller Bestandteil einer MBSE-Entwicklungsumgebung. Generische, textbasierte Differenzalgorithmen sind für visuelle Modelltransformationssprachen jedoch ungeeignet. Als besondere Herausforderung erweist sich in diesem Kontext der Vergleich von Transformationsregeln des auf Graphtransformationskonzepten basierenden Werkzeugs Henshin. Ziel dieser Abschlussarbeit ist die Konzeption und Entwicklung eines hochgradig angepassten Werkzeug zum Abgleich und zur Differenzierung von Henshin-Transformationsregeln. Wenn möglich soll hierbei auf existierende Frameworks aus dem Kontext der Modellversionierung zurückgegriffen werden. Insbesondere zur Bestimmung korrespondierender Elemente in den zu vergleichenden Transformationsregeln sollen aber auch grundlegende Graph-Algorithmen auf ihre Eignung hin untersucht werden, beispielsweise diverse Varianten zur Bestimmung von größten gemeinsamen Subgraphen.
  • Model-Based Code Refactoring Analysis for Semi-Automated Software Library Migration
    Michael Berger

    PDF
    Softwarebibliotheken entwickeln sich stetig weiter, wobei neben funktionalen Erweiterungen auch Schnittstellenänderungen und Änderungen in der Programmstruktur durchgeführt werden können. Als Folge dessen entstehen mit jedem Update solcher Bibliotheken Wartungsaufwände, die zahlreiche Anpassungen der aufrufenden Klienten zur Folge haben. Ziel dieser Arbeit ist es, Applikationsentwickler bei einer solchen Migration bestmöglich zu unterstützen. Hierzu soll untersucht werden, inwiefern Schnittstellen- und Strukturänderungen zwischen zwei Bibliotheksversionen als eine Kette von definierten Operationsschritten beschrieben werden können, so dass die identifizierten Operationen für eine semi-automatisierte Migration der aufrufenden Klienten genutzt werden können. Der Vergleichsschritt soll hierbei auf Modellebene geschehen. Dazu ist es notwendig, Projekte in geeignete Modelle umzuformen, die genau die API-Bestandteile abbilden, welche für die Identifizierung der Operationen sowie die späteren Migrationsschritte benötigt werden. Die prototypische Umsetzung eines entsprechenden Assistententools soll als Eclipse Plug-In realisiert werden, und auf den grundlegenden, EMF-basierten Frameworks Modisco, SiLift und Henshin aufbauen.
     
  • 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

    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.