Als Basis zur Generierung der Aktivitätsdiagramme
dienten uns die Sequenzdiagramme, die den einzelnen Anwendungsfällen
zugrunde liegen (siehe Beispiel 1). Ausnahmen
bilden die beiden Operationen "Liefer-Kartei::lieferscheine_erstellen()"
und "Produkt::wareneingang_bearbeiten", die keinen Anwendungsfall als solchen
darstellen, aber derart komplex waren, daß eine Erstellung eines
Aktivitätsdiagramms für sinnvoll erachtet wurde.
Als Indikatoren für Aktivitäten
dienten die Operationsnamen derjenigen Klassen, die zur Modellierung der
Anwendungsfälle verwendet wurden.
Das Erstellen der Aktivitätsdiagramme wurde dadurch erleichert,
daß die Sequenzdiagramme prozedural ausgerichtet sind.
1. Beispiel: "Bestellung bearbeiten"Unsere grundsätzliche Vorgehensweise bei der Entwicklung eines Aktivitätsdiagramms auf der Grundlage eines Sequenzdiagramms ist die Verfolgung der zeitlich aufeinander abfolgenden Operationsaufrufe. Anhand der Grafik kann die Abfolge der Aktionen im einzelnen nachvollzogen werden.Aus der Iteration, alle Kundenbestellposten, sofern sie noch nicht bearbeitet wurden, den Karteien Liefer- oder Wartekartei zuzuordnen, wird die Aktivität "Nächsten Bestellposten finden". Diese Aktivität terminiert den Anwendungsfall, sobald alle Kundenbestellposten abgearbeitet worden sind. Um eine korrekte Karteizuordnung treffen zu können, muß zuerst der aktuelle Lagerbestand bezüglich des betreffenden Produkts ermittelt werden. Dies geschieht durch den Anwendungsfall "Lagerbestand ermitteln", der als Aktivität im Diagramm formuliert wird. Anhand einer Fallunterscheidung wird die Zuordnung zu den beiden Karteien getroffen. Als Grundlage der Fallunterscheidung dient die Differenz zwischen dem aktuellem Lagerbestand und der Bestellmenge. Ist diese größer oder gleich Null, so wird der betreffende Bestellposten der Lieferkartei zugeordnet, andernfalls der Wartekartei. Die Operationen "neuer_eintrag" im Sequenzdiagramm werden als Aktivität "Bestellposten der ...-Kartei zuordnen", in Abhängigkeit der betroffenen Kartei, beschrieben. Im Fall der Zuordnung zur Lieferkartei wird der Lagerbestand entsprechend der Bestellmenge nach unten korrigiert, dies kommt in der Aktivität "Lagerbestand korrigieren" zum Ausdruck. Bei Zuordnung zur Wartekartei wird die Bestellmenge als Nachbestellung an den Weinproduzenten vorgemerkt, um am Ablauf eines Tages eine Sammelbestellung aufgegeben zu können. Dieser Sachverhalt wird durch die Aktivität "Bestellte Menge zur Nachbestellung vormerken" wiedergegeben. Nach der Zuordnung des Bestellpostens und den darauffolgenden Aktivitäten erfolgt eine Transition zur ersten Aktivität.
![]()
|
2. Beispiel: "Liefer-Kartei::lieferscheine_erstellen()"Auch in diesem Fall bildete das Sequenzdiagramm, das dem Anwendungsfall "Lieferscheine_erstellen" zugeordnet ist, die Grundlage für das Aktivitätsdiagramm der Operation "Lieferscheine_erstellen", die in diesen Anwendungsfall eingebettet ist. Zunächst wird die Iteration aufgelöst, in der alle in der Liefer-Kartei vorhandenen Bestellposten abgearbeitet werden. Sollte für den betrachteten Bestellposten noch kein Lieferschein existieren, in den dieser aufgenommen werden kann, weil es der erste Bestellposten für die Auslieferung an einen Kunden ist, so muß ein neuer Lieferschein angelegt werden. Sind alle in der Liefer-Kartei befindlichen Bestellposten abgearbeitet worden, d.h. einem Lieferschein zugeordnet worden, werden die vorhandenen Lieferscheine den Lieferwagen zugeordnet, ausgedruckt und anschließend wieder gelöscht. Diese Überlegung führte dazu, daß eine neue Klasse "Lieferschein" in das Klassendiagramm hinzugefügt wurde, die die benötigten Daten zur Spezifikation eines Lieferscheines aufnimmt.
![]()
![]() 1. Änderung am Aktivitätsdiagramm zu "Liefer-Kartei::lieferscheine_erstellen()"
![]()
![]() |
Einordnung in das Gesamtbild der UML