Modellierung mit
UML
Loading

6.4 Sonderfälle und Ergänzungen für Sequenzdiagramme

Eine Analyse der definierten Form und Semantik für die Sequenzdiagramme der UML/P zeigt, dass ähnlich wie bei anderen Formen bestimmte Sonderfälle auftreten können, die einer genaueren Erläuterung bedürfen.

Nicht-kausale Sequenzdiagramme

Ein Sequenzdiagramm legt eine zeitliche Reihenfolge der beobachteten Nachrichten fest. Es definiert jedoch nicht notwendigerweise eine kausale Reihenfolge. Insbesondere kann ein Sequenzdiagramm wie in Abbildung 6.15 gezeigt, in zwei disjunkte Teile zerfallen. Die damit unvollständige Beobachtung zeigt nicht mehr den kausalen, sondern nur noch einen zeitlichen Zusammenhang der auftretenden Methodenaufrufe. Derartige Sequenzdiagramme sind für Tests geeignet, aber weniger für eine Beschreibung aus dem eine Implementierung entwickelt werden soll, weil für Entwickler die Kausalität eine wesentliche Rolle spielt.

Lädt...
Abbildung 6.15: Nicht-kausales Sequenzdiagramm

Ein ähnliches Phänomen tritt in Abbildung 6.16 auf, in dem nicht angegeben ist, wie die Kontrolle nach Objekt c transferiert wird. Nicht-kausale Sequenzdiagramme können durch Verwendung geeigneter match:*-Stereotypen unterbunden werden.

Lädt...
Abbildung 6.16: Zweites nicht-kausales Sequenzdiagramm
Rekursion und Mehrdeutigkeit

Die bereits in Abschnitt 5.2.7 diskutierte Objektrekursion erzeugt nicht nur bei Statecharts, sondern auch bei Sequenzdiagrammen Komplikationen. Eine Objektrekursion liegt vor, wenn innerhalb der Ausführung einer Methode direkt oder indirekt eine weitere Methode desselben Objekts aufgerufen wird. Abbildung 6.17 zeigt beide Formen von Aufrufen.

Lädt...
Abbildung 6.17: Sequenzdiagramme mit Objektrekursion

Aktivitätsbalken dienen normalerweise zur Illustration des Verhaltens und können weggelassen werden. Jedoch erlauben sie Mehrdeutigkeiten aufzulösen. In Abbildung 6.18(a) sind weder Aktivitätsbalken, noch Returns angegeben, so dass beide Alternativen 6.18(b) und 6.18(c) möglich sind. Die Auflösung der Mehrdeutigkeit kann, wie gezeigt, durch Aktivitätsbalken oder in analoger Form durch die Angabe von Returns erfolgen.

Lädt...
Abbildung 6.18: Mehrdeutiges Sequenzdiagramm

Die Quelle dieser Mehrdeutigkeiten ist die in Abbildung 6.17 gezeigte Objektrekursion. Da mithilfe der Aktivitätsbalken oder Returns eine solche Mehrdeutigkeit leicht aufgelöst werden kann, wird festgelegt, dass ein Sequenzdiagramm mit einer solchen Mehrdeutigkeit nicht wohlgeformt ist und von einem Codegenerator zurückgewiesen wird.


Bernhard Rumpe. Agile Modellierung mit UML. Springer 2012