Mayerhofer, T. (2011). Breathing new life into models : an interpreter-based approach for executing UML models [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-43002
UML; fUML; Model Execution; Model Debugging; Model Testing; Activity Diagram
en
Abstract:
Im Laufe der letzten Jahre gewann die modellgetriebene Softwareentwicklung, auch bekannt als Model-Driven Development (MDD), enorm an Bedeutung. Dabei wird die Implementierung eines Systems, d.h.<br />der Code, automatisch oder halbautomatisch aus den Modellen generiert.<br />Die Korrektheit dieser Modelle ist demnach von großer Bedeutung. Damit ergibt sich die Notwendigkeit ausführbarer Modelle, die durch ihre Ausführung getestet und validiert werden können. Der objektorientiert Modellierungsstandard UML hat den Nachteil, dass er keine präzise und vollständig spezifizierte Ausführungssemantik besitzt. Die Ausführungssemantik von UML wird nur informell in englischer Prosa definiert und unstrukturiert über den 1000 Seiten umfassenden Standard hinweg verteilt behandelt. Dadurch ergeben sich Mehrdeutigkeiten bezüglich der Interpretation von Modellen, was sich auch in der Inkompatibilität der UML Werkzeuge widerspiegelt.<br />Die OMG erkannte das Bedürfnis nach ausführbaren Modellen sowie die Probleme der Semantikdefinition von UML und entwickelte einen neuen Standard mit dem Titel Semantics of a Foundational Subset of Executable UML Models oder foundational UML (fUML), der im Februar 2011 in Erstversion veröffentlicht wurde. Dieser Standard definiert die präzise und vollständige Semantik einer Untermenge von UML 2, die als foundational UML subset bezeichnet wird.<br />Die Forschungsfrage dieser Arbeit lautet daher: Ist die Semantikdefinition des fUML Standards geeignet, um Programme zu implementieren, die das Ausführen von UML Aktivitätsdiagrammen ermöglichen? Um diese Frage zu beantworten, wurde ein Prototyp für einen Modell-Interpreter entwickelt, der UML Modelle entsprechend der im fUML Standard definierten Ausführungssemantik ausführen und debuggen kann.<br />Dieser Modell-Interpreter konzentriert sich dabei auf die Ausführung von UML Aktivitätsdiagramme, die sich mit der Manipulation von Objekten und Links in einem System beschäftigen. Weiters stellt der Prototyp sinnvolle Debugging-Funktionen zur Verfügung, ähnlich jener Funktionalitäten, die vom Debuggen von Code bekannt sind, wie beispielsweise die schrittweise Ausführung oder das Anzeigen des Debugging-Fortschritts. Die Erfahrungen, die im Zuge der Implementierung dieses Prototyps gewonnen werden konnten zeigen, dass der fUML Standard verwendet werden kann, um Programme zu entwickeln, die das Ausführen von UML Aktivitätsdiagrammen ermöglichen. Gleichzeitig ist aber ein hoher Implementierungsaufwand nötig, um benutzerfreundliche und effizient nutzbare Werkzeuge zu entwickeln, die Funktionalitäten wie das Debuggen von Modellen oder das Ausführen unvollständiger Modelle unterstützen.<br />
de
Over the past years Model-Driven Development (MDD) gained significant popularity. With the usage of this paradigm the software engineering process becomes more model-centric and less code-centric.<br />This means that models become the main artifact in the software development process and therewith the whole software development process relies on these models and their correctness. For this reason the need for executable models that can be tested and validated arose. The de facto standard for modeling software systems is OMG's Unified Modeling Language (UML). The problem is that UML models are not executable because UML has no precise and completely specified semantics. Its semantics is defined informally in English prose and this definition is scattered throughout the standard with about 1000 pages. Because of this situation, ambiguities arise and models can be interpreted and executed in different ways. This also led to the development of execution tools that are not interoperable because they implement different execution semantics.<br />OMG has recognized the need for executable models in an unambiguous way, and has developed a new standard called Semantics of a Foundational Subset of Executable UML Models or foundational UML (fUML) that was released in February 2011. This standard defines the precise execution semantics of a subset of UML 2, the so-called foundational UML subset.<br />The research question of this thesis is as follows. Is the semantics definition of the fUML standard sound and applicable for building tools that enable the execution of UML activity diagrams? To answer this question, a prototype of a model interpreter has been developed in this thesis that is able to execute and debug UML models according to the execution semantics defined in the fUML standard. This model interpreter prototype focuses on executing activity diagrams that model the manipulation of objects and links in a system. Furthermore, the prototype provides reasonable debugging functionality similar to the functionality offered for debugging code like the step-wise execution and the displaying of the debugging progress. The experiences gained during the implementation of the model interpreter prototype led to the following conclusion. The fUML standard is applicable for implementing tools that support the execution of UML activity diagrams, however, high efforts are necessary to develop a user-friendly and efficiently usable tool supporting features like the debugging of models or the execution of incomplete models.<br />