Modellierung mit
UML
Loading

6 Sequenzdiagramme

Ein Sequenzdiagramm stellt einen exemplarischen Ausschnitt aus dem Ablauf eines Softwaresystems dar. Es modelliert die dabei auftretenden Interaktionen und Aktivitäten und kann um OCL-Bedingungen erweitert werden. Dieses Kapitel stellt eine vereinfachte Version von Sequenzdiagrammen vor, die sich insbesondere für die Modellierung von Tests eignet.

6 Sequenzdiagramme
6.1 Konzepte der Sequenzdiagramme
6.2 OCL in Sequenzdiagrammen
6.3 Semantik eines Sequenzdiagramms
6.4 Sonderfälle und Ergänzungen für Sequenzdiagramme
6.5 Sequenzdiagramme in der UML
6.6 Zusammenfassung

Sequenzdiagramme werden zur Modellierung von Interaktionen zwischen Objekten eingesetzt. Ein Sequenzdiagramm beschreibt, in welcher Reihenfolge Methodenaufrufe durchgeführt und beendet werden. Ähnlich wie mit Statecharts werden daher Verhaltensaspekte modelliert. Es ergeben sich jedoch einige wesentliche Unterschiede:

  • Ein Sequenzdiagramm stellt die Interaktion zwischen Objekten in den Vordergrund. Der innere Zustand eines Objekts wird dagegen nicht dargestellt.
  • Ein Sequenzdiagramm ist grundsätzlich exemplarisch. Genau wie beim Objektdiagramm kann daher die dargestellte Information während des Ablaufs eines Systems beliebig häufig, mehrfach parallel oder auch gar nicht auftreten.
  • Aufgrund der Exemplarizität sind Sequenzdiagramme nicht zur vollständigen Modellierung von Verhalten geeignet und werden vor allem während der Anforderungsdefinition und, wie in dieser Arbeit gezeigt, zur Modellierung von Testfällen eingesetzt.

Der methodische Einsatz von Sequenzdiagrammen erfolgt daher vor allem zur Anforderungserfassung sowie zur Definition von Tests während oder nach der Implementierung. Werden Sequenzdiagramme zur Modellierung eines Systems eingesetzt, so illustrieren sie immer spezielle, erwünschte oder unerwünschte Situationen oder Fehlerquellen und sind damit als Ausgangspunkte für Testfälle geeignet.

Aus einer zur Entwicklung eingesetzten, notwendigerweise endlichen Menge von Sequenzdiagrammen muss eine vollständige Implementierung gewonnen werden. Um dies zu systematisieren, werden Sequenzdiagramme durch eine Reihe von Vorschlägen erweitert. Im Wesentlichen werden dabei Kontrollstrukturen hinzugefügt, die Alternativen, parallele Abläufe, Iteration und „rekursive Aufrufe“ von Sequenzdiagrammen erlauben. Diese Vorschläge werden zum Beispiel in [Krü00Leu95GRG95BGH+98SHB96] diskutiert und in unterschiedlichen Formen in die beiden wesentlichen Standards für Sequenzdiagramme umgesetzt. Neben dem UML-Standard [OMG10a] werden vor allem in der Telekommunikationsindustrie mit den Message Sequence Charts (MSC) [IT99] Dialekte von Sequenzdiagrammen eingesetzt. Die auf Automaten basierende Erweiterung in High-Level-MSCs erlaubt ebenfalls die Darstellung von Kombinationen von MSCs [IT99Krü00GGR01]. Eine weitere Variante der Sequenzdiagramme sind die Object-MSCs [BMR+96], in denen die Aktivitätsbalken eingeführt wurden. Besondere Aufmerksamkeit verdient auch der LSC („Live Sequence Charts“) Ansatz [DH01HM03HM08], der Sequenzdiagrammen deutlich mehr Ausdrucksstärke verleiht und so für vollständige Spezifikationen, Simulation verschiedenartigster Abläufe [KHK+03], konstruktive Codegenerierung oder Verifikationstechniken zugänglich wird.

Im Vergleich zu den erwähnten Varianten ist die in diesem Kapitel vorgestellte Form der Sequenzdiagramme einfach gehalten. Dies liegt unter anderem daran, dass sich der methodische Einsatz der Sequenzdiagramme in dieser Arbeit auf die Modellierung von Testfällen beziehungsweise Testtreibern beschränkt. Für vollständige Ablaufbeschreibungen können bereits Statecharts eingesetzt werden. Dadurch wird eine redundante Beschreibung vermieden. Dies basiert auf der Erfahrung, dass es wesentlich aufwändiger ist, vollständige als exemplarische Beschreibungen zu erstellen und aus Gründen der Entwicklereffizienz Redundanz zu vermeiden ist. Daher reichen Sequenzdiagramme zur exemplarischen Ablaufbeschreibung aus.

Der folgende Abschnitt 6.1 führt die grundlegenden Konzepte der Sequenzdiagramme ein. Abschnitt 6.2 diskutiert den Einsatz von OCL-Bedingungen in Sequenzdiagrammen. In Abschnitt 6.3 werden mehrere verschiedene Semantiken für Sequenzdiagramme vorgestellt und durch Stereotypen dem Entwickler die Auswahl darüber gegeben. Ergänzungen für Sequenzdiagramme und Sonderfälle werden in Abschnitt 6.4 diskutiert. Der Abschnitt 6.5 behandelt schließlich den Einsatz der Sequenzdiagramme im Kontext anderer UML-Diagramme. Anhang C.6 beschreibt ergänzend zu diesem Kapitel die abstrakte Syntax von Sequenzdiagrammen.


Bernhard Rumpe. Agile Modellierung mit UML. Springer 2012