Übersicht Inhaltsverzeichnis Vorwort 1 Einführung 2 Klassendiagramme 3 Object Constraint Language 4 Objektdiagramme 5 Statecharts 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 A Sprachdarstellung durch Syntaxklassendiagramme B Java C Die Syntax der UML/P D Anwendungsbeispiel: Internet-basiertes Auktionssystem Literatur |
6.4 Sonderfälle und Ergänzungen für SequenzdiagrammeEine 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 SequenzdiagrammeEin 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. 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. Rekursion und MehrdeutigkeitDie 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. 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. 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.
|
|||||||||