title: Integration of external libraries into the foundational subset of UML
Creators: name: Neubauer, Patrick
Publisher: name: TU Wien
Year: 2014

description: Mit der Einführung von OMG's Foundational UML (fUML) Standard, der die Ausführungssemantik für ein Teilmenge von UML und die konforme virtuelle Maschine präzise definiert, können vollständig ausführbare Systeme in UML entwickelt und ausgeführt werden. Das vollständige Potenzial von ausführbaren Modellen ist jedoch noch nicht gegeben. Die Möglichkeit der Wiederverwendung von existierenden Softwarekomponenten, die Studien zufolge die Qualität und Produktivität des Softwareentwicklungsprozesses gesamtheitlich erhört, ist ein wichtiger Aspekt, der das Potenzial von ausführbaren Modellen steigert. Darüber hinaus involviert heutige Software die hochgradige Nutzung von existierenden Softwarekomponenten, primär in Form von Software Bibliotheken (d.h. zur Verfügung gestellte APIs in der angewandten Programmiersprache). Diese Arbeit identifiziert, dass der fUML Standard keine Prozedur um Software Bibliotheken zu nutzen zur Verfügung stellt. Tatsache ist, dass das Erstellen von Modellen, die Bibliotheken verwenden, im fUML Standard nicht vorgesehen ist. Der Standard sieht dessen Erweiterbarkeit hingegen durch die Foundational Model Library vor. Dies jedoch benötigt die Implementierung von Modellbibliotheken, die im Grunde die Funktionalität von derzeitig existierenden, und damit bereits zur Verfügung gestellten, Bibliotheken imitieren. Dieser Ansatz weist einen erheblichen Nachteil auf. Es wird eine große Menge an gemeinsamen Bemühungen benötigt um eine Menge von Modellbibliotheken aufzubauen, die einen ähnlichen Funktionsumfang bieten, wie die existierende Menge von Software Bibliotheken. Die Forschungsfrage dieser Arbeit lautet daher: Ist die virtuelle Maschine für fUML Modelle erweiterbar, sodass diese die Ausführung von Modellen, die externe Bibliotheken verwenden, erlaubt? Innerhalb dieser Arbeit wurde ein Ansatz ausgearbeitet, der es ermöglicht Software Bibliotheken in fUML Modellen zu verwenden. Die Anwendbarkeit dieses Ansatzes wurde nachgewiesen durch die Entwicklung eines prototypischen Integration Layers der fähig ist, Java Bibliotheken mit der fUML virtuellen Maschine zu integrieren, sodass der Modellierer von deren Funktionalität profitieren kann. Dieser Prototyp fokusiert sich auf die Instantiierung von Bibliotheksklassen und den Aufruf von Bibliotheksoperationen. Während der Durchführung verschiedener Fallbeispielen wurden Erfahrungen gewonnen, die zur Weiterentwicklung des Prototypen, sowie zu folgendem Endergebnis geführt haben: Die fUML virtuelle Maschine kann erweitert werden, sodass diese die Ausführung von Modellen, die externe Bibliotheken verwenden, erlaubt. Um jedoch die Anwendbarkeit des implementierten Prototypen, und damit den Umfang der anwendbaren Modellierungsszenarien zu erweitern, wird eine eingehende Untersuchung von verbreiteten Anwendungsfällen für die Verwendung von Bilbiotheken, sowie deren Implementierung, empfohlen.
description: With the introduction of OMG's Foundational UML (fUML) standard, that precisely defines the execution semantics for a subset of UML, and the conforming virtual machine, completely executable systems can be built and executed with UML. However, the full potential of having executable models has yet to be unleashed. An important aspect that increases the potential of executable models is the ability to re-use existing software components since that reportedly increases the overall quality and productivity of the software development process. Furthermore, large-scale software that is produced nowadays, involves the usage of a high number of existing software components primarily in form of software libraries (i.e., APIs provided for the used programming language). This thesis identified that the fUML standard does not offer a procedure to use software libraries. In fact, creating models that build on top of software libraries is not foreseen in the fUML standard. On the contrary, the standard foresees its extendability through the Foundational Model Library. Yet, doing so requires implementing model libraries that basically mimic the functionality provided by currently existing software libraries. This approach imposes a significant drawback. It requires a huge amount of dedicated joint effort to build a set of libraries having similar functional coverage and sophistication as the existing set of software libraries. The research question of this thesis is as follows. Is the fUML virtual machine extendable, such that it allows the execution of models referencing external software libraries? Within this work, an approach has been elaborated that enables to use external software libraries in fUML models. The applicability of this approach has been shown by implementing a prototypical Integration Layer that is able to integrate Java libraries with the fUML virtual machine such that the modeler can benefit from the advanced and complex functionalities provided by those libraries. This prototype focuses on creating instances of library classes and calling library operations. Moreover, a two-step procedure to make existing libraries available for their usage in fUML models, has been implemented. While conducting several case studies, experiences have been gained that led to further enhancements of the prototype and to the following conclusion. The fUML virtual machine can be extended, such that it allows the execution of models referencing external libraries. Nevertheless, to broaden the applicability of the implemented prototype, and therefore increase the scope of applicable modeling scenarios, an in-depth investigation on common library use cases and their following implementation is recommended.