Semantics-driven translation of UML-models into object-oriented programming languages : aligning the semantics of UML static structures and dynamic behavior in an approach for model-driven development

Autor: Gessenharter, Dominik
Přispěvatelé: Partsch, Helmuth, Reichert, Manfred, Tichy, Matthias
Jazyk: angličtina
Rok vydání: 2020
Předmět:
DOI: 10.18725/oparu-31878
Popis: Unified Modeling Language (UML) offers extensive possibilities to model static structure as well as dynamic behavior, both key domains of a complete system specification. UML, however, fails to clearly specify its semantics, in particular to coherently and consistently align the semantics of structure and behavior. The key idea of Model-Driven Development (MDD), which is to generate implementations from models, is hardly feasible due to the informally and therefore ambiguously defined semantics. The misalignment between the semantics of static structure and dynamic behavior, which both are required for a complete specification of a system, makes things even worse. This thesis is particularly concerned with the semantics of UML regarding the modeling of static structure and dynamic behavior. It identifies design flaws, inconsistencies, and shortcomings and presents suggestions on how to overcome semantical deficiencies in order to succeed in generating software implementations from models. The provided solutions are founded on an adapted semantics which tightly integrate modeling of static structure and dynamic behavior. Based on this adapted semantics, it is detailed how the high abstraction levels provided by the modeling language are transformed into the lower abstraction levels of programming language concepts. With the profound study of the semantics and the presented modifications to it, a reliable foundation for better tool support is given. The mapping of modeling concepts to programming language constructs is specified using executable transformation formalisms. From these transformation specifications, a prototypical implementation of a code generator is derived, which translates UML models into the Java programming language.
Die Unified Modeling Language (UML) bietet umfangreiche Möglichkeiten zur Modellierung der statischen Struktur sowie des dynamischen Verhaltens, beides Schlüsselfelder einer vollständigen Systemspezifikation. Die UML versäumt jedoch die klare Festlegung ihrer Semantik, insbesondere sind die Semantik von Struktur und Verhalten nicht vollständig und konsistent aufeinander abgestimmt. Die Schlüsselidee der modellgetriebenen Entwicklung (MDD), Implementierungen aus Modellen zu generieren, ist aufgrund der informell und daher nicht eindeutig definierten Semantik kaum realisierbar. Abweichungen zwischen der Semantik der statischen Struktur und der des dynamischen Verhaltens, die beide für eine vollständige Spezifikation eines Systems erforderlich sind, macht den Sachverhalt noch schwieriger. Diese Arbeit befasst sich insbesondere mit der Semantik der UML hinsichtlich der Modellierung der statischen Struktur und des dynamischen Verhaltens. Sie identifiziert Design-Fehler, Inkonsistenzen sowie weitere Mängel und enthält Vorschläge zur Überwindung semantischer Unzulänglichkeiten, um erfolgreich Softwareimplementierungen aus Modellen zu generieren. Die bereitgestellten Lösungen basieren auf einer angepassten Semantik, die die Modellierung der statischen Struktur und des dynamischen Verhaltens enger miteinander verbindet. Basierend auf dieser angepassten Semantik wird detailliert beschrieben, wie die von der Modellierungssprache bereitgestellten hohen Abstraktionsebenen in die niedrigeren Abstraktionsebenen von Programmiersprachenkonzepten umgewandelt werden können. Durch die gründliche Auseinandersetzung mit der Semantik und mit den vorgestellten Modifikationen wird eine verlässliche Grundlage für eine bessere Werkzeugunterstützung geschaffen. Die Zuordnung von Modellierungskonzepten zu Programmiersprachenkonstrukten wird unter Verwendung ausführbarer Transformationsformalismen spezifiziert. Aus diesen Transformationsspezifikationen wird eine prototypische Implementierung eines Codegenerators abgeleitet, der UML-Modelle in die Programmiersprache Java übersetzt.
Databáze: OpenAIRE