Als Basis zur Generierung der Zustandsdiagramme
dienten uns die Sequenzdiagramme, an denen das zu beschreibende Objekt
beteiligt ist. Die Zustände
wurden meist aus den Aufrufen der Operationen abgeleitet. Falls Ergebniswerte
zurückgeliefert werden, wird anhand des Resultats in den entsprechenden
Folgezustand verzweigt. Eine Transition
von einem Zustand in den nächsten erfolgt durch einen Operationsaufruf,
dessen Ergebnis der nächste Zustand darstellt.
1. Beispiel: "Bestellposten Kundenbestellung"Zu Beginn des Lebenszyklus eines "Bestellpostens Kundenbestellung" steht die Initialisierung, die durch das Sequenzdiagramm zu dem Anwendungsfall "Bestellung annehmen" umgesetzt wird. Die Initialisierung umfaßt die Vergabe einer laufenden Bestellpostennummer bezüglich der in Auftrag gegebenen Bestellung, die Erstellung eines Verweises auf die aufgegebene Bestellung, die Angabe des bestellten Produktes sowie die bestellte Menge im erzeugten Objekt "Bestellposten Kundenbestellung". Der Zustand des Objektes wird erst wieder durch den Operationsaufruf "kartei_zuordnen" geändert. Diese Operation ist aus dem Anwendungsfall "Bestellung bearbeiten" entstanden. In Abhängigkeit von der auf Lager befindlichen Menge des Produktes erfolgt eine Zuordnung entweder zur Liefer-Kartei (Lagerbestand Produkt >= Menge Bestellposten) oder zur Warte-Kartei (Lagerbestand Produkt < Menge Bestellposten). Nach der erfolgreichen Auslieferung findet eine Transition zu dem Endzustand statt.
![]()
![]() Änderung am Zustandsdiagramm "Bestellposten Kundenbestellung"Die erste Änderung ergab sich in der Umbenennung des ersten Zustandes, von "Erzeugt" nach "Initialisiert", um dem eigentlichen Status nach dem Operationsaufruf neu() gerecht zu werden. Als zweite Änderung ergab sich die Elimination des Zustandes "Wird Kartei zugeordnet", da das Ergebnis des Operationsaufrufes "neuer_eintrag()" (ehemals "kartei_zuordnen()") nicht ein ungewisser Zustand "Wird Kartei zugeordnet" sein kann, sondern in einer konkreten Zuordnung zu einer Kartei resultiert.Die umfangreichste Änderung an diesem Zustandsdiagramm ergab sich jedoch aufgrund der Verfeinerung des Sequenzdiagramms zu dem Anwendungsfall "Lieferscheine erstellen". Bestand das Sequenzdiagramm in seiner ersten Fassung aus nur einem Objekt, so wurde dies unter der Hinzunahme der Objekte Verwaltung und Liefer-Kartei komplexer, so daß auch das Zustandsdiagramm für die Klasse "Bestellposten Kundenbestellung" angepaßt werden mußte. Dies drückt sich in den beiden Zuständen "Nicht zugeordnet zu Lieferschein" und "Zugeordnet zu Lieferschein" aus. Eine Berücksichtigung einer nicht erfolgreich verlaufenen Auslieferung ergab sich durch die Transition "Rücklauf", die für einen nicht ausgelieferten Bestellposten wieder den Aufruf der Operation "lieferscheine erstellen()" möglich macht. Weil diese Zustände dem Zustand "Zugeordnet zu Liefer-Kartei" untergeordnet sind, wurde dies durch einen sie umschließenden Kasten verdeutlicht.
![]()
![]() |
Einordnung in das Gesamtbild der UML