Aktivitätsdiagramme

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.

 
Abbildung 14: Aktivitätsdiagramm zum Anwendungsfall "Bestellung bearbeiten"

 
 

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. 

 
Abbildung 15a: Aktivitätsdiagramm zur Operation "Liefer-Kartei::Lieferscheine_erstellen()" - Entwurf 1

 

Guided Tour: Weiter bei der 2. Änderung des Klassendiagramms 

 1. Änderung am Aktivitätsdiagramm zu "Liefer-Kartei::lieferscheine_erstellen()"

Problem:
 Die Lieferscheine werden nur temporär gespeichert, um den Zuordnungs-Algorithmus bedienen zu können. Dieser Sachverhalt wurde in der ersten Fassung nicht berücksichtigt. 
 
Unsere Lösung:
 In diesem wurde die Aktivität "Lieferscheine löschen" hinzugefügt. Sobald mindestens ein Bestellposten in der Kartei existiert, werden auch Lieferscheine erstellt. Es ergab sich eine Änderung ergab, die zur endgültigen Fassung führte. 

 
Abbildung 15b: Aktivitätsdiagramm zur Operation "Liefer-Kartei::Lieferscheine_erstellen()" - endgültige Version

 

Guided Tour: Weiter bei der 2.Änderung der Klassen "Liefer-Kartei" und "Lieferschein" 


Hintergrundinformationen

Hinweise zur Erstellung

Einordnung in das Gesamtbild der UML


Buch: Weiter bei den Zustandsdiagrammen

Buch: Zurück zu den Kollaborationsdiagrammen