Niederbrucker, G. (2010). A numeric semantics for UML class diagrams : semantics and tools [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/160860
Heutzutage ist die "Unified Modeling Language" der Standardformalismus der benutzt wird, um die Struktur und das Verhalten von objektorientierten Systemen zu beschreiben. Da UML auf kein konkretes Anwendungsgebiet besch-ränkt ist, verwenden wir eine einge-schränkte Version von UML Klassendiagrammen als formale Basis, um funktionale Einheiten, wie etwa Hardwarekomponenten, und deren Beziehungen untereinander zu besch-rei-ben. Wir werden also UML Klassendiagramme benutzen, um Spezifikationen zu definieren und wollen im Anschluss daran konkrete Konfigurationen erzeugen, die diese Spezifikationen erfüllen. Wir werden zeigen, wie man die Semantik solcher Klassendiagramme definiert in dem man Fragestellungen über das Diagramm in Fragestellungen der ganzzahligen linearen Programmierung überführt. Das Definieren einer konkreten Semantik macht es nun möglich, Fragestellungen die Diagramme betreffend formal zu behandeln und in unserem Fall sogar vollständig zu automatisieren. Zu diesem Zweck werden wir das System Clews vorstellen, dass im Rahmen dieser Arbeit entwickelt wurde. Clews bietet alle in dieser Arbeit vorgestellten Schlussfolgerungen in vollständig automatisierter Form an. Benutzer von Clews brauchen also keinerlei Wissen über die formalen Hintergründe, profitieren aber durch die formalen Schlüsse im Hintergrund, die durch das System ausgeführt werden. Eines der Prinzipen von Clews ist, dass alle Schlussfolgerungen in interaktiver weise angeboten werden. Das bedeutet also zum Beispiel, dass das System die Konsistenz einer Spezifikation nach jeder änderung durch den Benutzer überprüft und Informationen liefert ob und wo Inkonsistenzen auftreten. Unsere gewählte Semantik liefert direkt teilweise definierte Konfigurationen, wo alle Objekte aber keine Links zwischen Objekten vorhanden sind. Aus diesem Grund werden wir neuartige Techniken präsentieren, die es möglich machen eine Reihe von Problemen im Zusammenhang mit dem Erzeugen dieser Links zu lösen. Aufgrund der konzeptuellen Trennung der Erzeugung der Objekte und der Erzeugung der Links, können wir auch Probleme wie das Erweitern oder das Reparieren von Konfigurationen bezüglich einer gegebenen Spezifikation lösen.
Nowadays the Unified Modeling Language is the standard formalism people use to specify the structure as well as the behavior of object oriented systems. Since UML is not limited to any specific domain we will use a subset of UML class diagrams as formal base for describing functional units like hardware components and their relationships among each other. So we will use UML class diagrams to set up specifications and want to create concrete configurations satisfying those specifications. We will present how to define the precise semantics of UML class diagrams by transforming diagram related questions to problems of integer linear programming. The definition of a precise semantics makes it possible to reason about diagram related questions formally and in our case even automated. For this purpose we will present a system called Clews which was developed in the context of this thesis. Clews offers the theory and reasoning tasks presented in this thesis in a fully automated way. So users of Clews do not need any knowledge about the formal background and just benefit from the formal reasoning done in the background. One of the principles of Clews is that it offers the reasoning tasks in an interactive way. For example the systems checks the consistency of specifications after each change by the user and immediately shows whether and where there are inconsistencies. Our semantics directly delivers partial configurations where all objects but no links are known. Therefore we will present novel techniques to solve a couple of important problems related to the creation of links. Because of the conceptual separation of creating objects and creating links we are also able to solve problems like extending or repairing given partial configurations with respect to given specifications.