Übersicht Inhaltsverzeichnis Vorwort 1 Einführung 2 Klassendiagramme 3 Object Constraint Language 4 Objektdiagramme 5 Statecharts 6 Sequenzdiagramme A Sprachdarstellung durch Syntaxklassendiagramme B Java C Die Syntax der UML/P C.1 UML/P-Syntax Übersicht C.2 Klassendiagramme C.3 OCL C.4 Objektdiagramme C.5 Statecharts C.6 Sequenzdiagramme D Anwendungsbeispiel: Internet-basiertes Auktionssystem Literatur ![]() ![]() |
![]() |
C.6 SequenzdiagrammeC.6.1 Abstrakte SyntaxDie abstrakte Syntax der Sequenzdiagramme ist gegenüber den bisherigen Diagrammarten ungewöhnlich, da die Reihenfolge der Interaktionen an jeder Zeitlinie semantisch relevant ist. Abbildung C.19 enthält die abstrakte Syntax für den graphischen Teil. Darin sind die drei Hauptbestandteile ⟨Objektelement⟩, ⟨Aktivitätsbalken⟩ und ⟨Sequenzelement⟩ enthalten. Letzteres fasst als Oberklasse die verschiedenen Formen von Interaktionen, Beginn und Ende von Aktivitätsbalken und OCL-Bedingungen zusammen. Die ⟨Sequenzelemente⟩ eines Sequenzdiagramms sind linear geordnet und drücken so die zeitliche Reihenfolge aus. Aktivitätsstart und -ende werden als eigenständige Elemente behandelt, da wie in Abbildung 6.18(c) gezeigt, Aktivitätsbalken nicht unbedingt mit Interaktionen gekoppelt sein müssen, weshalb die entsprechenden Assoziationen optional sind. Als Kontextbedingung allerdings gilt, dass Aktivitätsstarts nur zu Beginn des Ablaufs frei auftreten, um damit zu signalisieren, dass die Aktivität in diesem Objekt bereits besteht. Der textuelle Teil der Syntax ist in Abbildung C.20 enthalten. Er zeigt die Form der OCL-Bedingungen und der Einführung von Hilfsvariablen sowie die Beschriftung der verschiedenen Interaktionen. Stereotypen und Merkmale sind wie üblich nicht explizit in der abstrakten Syntax angegeben. Die Nichtterminale ⟨KlassennameC.3⟩, ⟨MethodenaufrufC.17⟩, ⟨ReturnC.17⟩ und ⟨ExceptionC.17⟩ sind bereits für andere Notationen eingeführt worden und werden hier wiederverwendet.
Abbildung C.20: Fehlender textueller Anteil der Syntax von Sequenzdiagrammen
Die abstrakte Syntax stellt bereits einige Einschränkungen an das System dar. So müssen Starts und Enden von Aktivitätsbalken miteinander korrespondieren. Zusätzlich muss jedoch zum Beispiel gelten, dass je zwei Aktivitätsbalken im Sinne der zeitlichen Reihenfolge entweder disjunkt sind oder einer im anderen enthalten ist, dass ein mit einer Interaktionen assoziierter Aktivitätsbalken zu einem an der Interaktion beteiligten Objekt gehört, dass ein Methodenaufruf nur eine Aktivität startet, etc. Wesentlich ist insbesondere, dass die Typisierung der Argumente und Return-Werte soweit angegeben bereits durch Klassendiagramme aus dem Kontext des Sequenzdiagramms festgelegt wird. C.6.2 Vergleich mit dem UML-StandardDie UML/P-Sequenzdiagramme sind im Wesentlichen eine Teilmenge des UML-Standards [OMG10a]. Viele im UML-Standard enthaltenen Konzepte, wie Nebenläufigkeit, Alternativen, Wiederholung, Nachrichten mit zeitlicher Verzögerung oder Terminierung von Objekten sind in der UML/P nicht enthalten. Dadurch sind UML/P-Sequenzdiagramme weniger beschreibungsmächtig, aber damit für den Einsatz zur Modellierung von exemplarischen Abläufen und Tests optimiert. Zum Beispiel führt die im UML-Standard gewählte Form der Darstellung von Alternativen durch Aufteilung der Zeitlinien innerhalb von Sequenzdiagrammen sehr schnell zu unübersichtlichen Modellen. Durch den Verzicht auf die Darstellung asynchroner Nachrichten können Sequenzdiagramme relativ kanonisch mit Java-Implementierungen in Beziehung gesetzt werden. In UML/P lassen sich außerdem durch das Merkmal {time} ähnlich wie im UML-Standard zeitliche Rahmenbedingungen hinzufügen. Dies kann auch konstruktiv zur Vorgabe von Zeiten bei Tests eingesetzt werden. Im UML-Standard [OMG10a] fehlt eine explizite Integration von OCL-Bedingungen. Die graphische Notation dafür wurde in OCL/P von dem MSC-Standard [IT99] übernommen. Im UML-Standard gibt es jedoch die Möglichkeit Guards wie zum Beispiel [x>0] vor einen Methodenaufruf zu stellen, um damit aus Alternativen auszuwählen.
|
||||||||||||||||||||||||