Go to page

Bibliographic Metadata

Links
Abstract

Modelle spielen in heutigen Softwareentwicklungsprozessen eine wichtige Rolle, indem sie Stakeholdern ein angemessenes Abstraktionsniveau zur Spezifizierung von Softwaresystemen bieten. Während Modelle oft zu Entwurfs- und Dokumentationszwecken verwendet werden, stellt Modellgetriebene Softwareentwicklung (MDE) Modelle ins Zentrum des Entwicklungsprozesses, sodass Quellcode und Testfälle direkt aus der Spezifikation generiert werden können. Während MDE sich als Teilbereich des Software Engineering etabliert hat, ist ein häufig genanntes Argument gegen den Einsatz von MDE-Techniken in der Praxis jedoch deren fehlende Flexibilität, besonders in späteren Phasen des Entwicklungsprozesses. Aktuelle Konsistenzmanagementwerkzeuge können nur konsistente, d.h. fehlerfreie Eingabemodelle verarbeiten. Das zwingt Anwender, zunächst alle Fehler aus den Eingabemodellen zu entfernen, bevor sie in die Lage versetzt werden, mit den jeweiligen Modellierungswerkzeugen weiterzuarbeiten. Um diese Themen zu adressieren, wird im Rahmen dieser Arbeit Konsistenzmanagement als ein Optimierungsproblem betrachtet. Anstatt perfekte Konsistenz zu erzwingen, wird im Fall von fehlerhaften Eingabemodellen eine Lösung bestimmt, die so weit wie möglich konsistent ist. Ein hybrides Rahmenwerk wird vorgestellt, welches Triple-Graph-Grammatiken - einen deklarativen, regelbasierten Ansatz - mit Optimierungstechniken wie Ganzzahliger Linearer Optimierung und verschiedenen Meta-Heuristiken synergetisch kombiniert. Das hybride Rahmenwerk unterstützt verschiedene Konsistenzmanagementaufgaben, wie Modelltransformationen, Konsistenzchecks, und die Synchronisierung von (parallelen) Änderungen. Basierend auf diesem Ansatz können Nutzer mit mächtigen und flexiblen Konsistenzmanagementwerkzeugen ausgestattet werden, sodass die Anwendbarkeit von MDE-Techniken in der Praxis verbessert wird.

Abstract

Models play an important role in nowadays software engineering processes, providing stakeholders with a suitable level of abstraction for specifying software systems. While models are often used for design and documentation purposes, Model-Driven Engineering (MDE) places models in the centre of the development process, such that source code and test cases can be generated directly from the specification. While MDE established itself as a subfield of software engineering, a frequently named argument against the use of MDE techniques in practice is its lack of flexibility, though, especially in later phases of the development process. Current consistency management tools can only operate on consistent, i.e., fault-free input models. This forces users to remove all faults from the input models, before being able to continue working with the respective modelling tools. To address these issues, consistency management is considered as an optimisation problem in the scope of this thesis. Instead of enforcing perfect consistency, a solution that is consistent to the largest possible extent is determined in case of faulty input models. A hybrid framework is proposed that synergetically combines Triple Graph Grammars - a declarative, rule-based approach - and optimisation techniques, including Integer Linear Programming and different meta-heuristics. The hybrid framework supports various consistency management tasks, including model transformations, consistency checking, and the synchronisation of (concurrent) updates. Based on this approach, users can be equipped with powerful and flexible consistency management tools, such that the applicability of MDE techniques in practice is improved.