UML Aktivitätsdiagramm für Autorennen?

Cojones

Grünschnabel
Hallo,

ich versuche gerade ein Diagramm für ein Autorennen zu erstellen, bin allerdings bei der textuellen Erstellung hängegeblieben, da ich nicht so wirklich weiß, wie ich das in UML umsetzen soll.

Hier meine Idee:
- Jede Runde/Kurve erneut

-- Gegner überholen
---> Neue Position im Rennen

-- Gegner überholt werden
---> Neue Postion im Rennen

-- Unfall
--- Boxengasse
----> Neue Position im Rennen
---> Ausgeschieden

-- Boxengasse
---> Neue Position im Rennen

-- Strafe wegen Verstoß
--- Durchfahrtstrafe
----> Neue Position im Rennen
----> Ausgeschieden

-- Fahrfehler
--- Unfall
--- Gegner überholt werden

-- Fahrzeugprobleme
--- Boxengasse
----> Ausgeschieden

=> Rennen abgeschlossen, X. Position, ggf. Preisgeld

Wie würdet ihr sowas am besten umsetzen? Vielen Dank!
 
Kann man das so machen?

autorennen.jpg
 
Hallo,

Also mir sind da jetzt mehrere Sachen aufgefallen:
Vorweg mal: Ich kann mich nicht erinnern das es im UML Standart diese Art der Schleifendefinitionen gibt, also diese strichlierten Boxen.

Des weiteren musst du in jeder Unterkomponente dafür sorgen das ein Eintrittspunkt vorhanden ist (also z.B.: Kurven-Schleife) und du auf jeden Fall zu einem End-Knoten kommst (Wenn du Kurve++ ausführst erreichst du nie einen).

Im Aktivitätsdiagramm müssten alle Bedingungen bei Verzweigungen in Eckigen Klammern stehen.
 
Hallo,

erst mal vielen Dank für die Antwort!

Diese Schleifendefinition ist ein Loop-Node, der soweit ich das gelesen hab, für solche Sachen einzusetzen sind (Loop-Nodes Beschreibung). Hab ich da was falsch verstanden?

Das mit der Kurve++/Runde++ hab ich von hier. Dort wird es so beschrieben, dass es nach den X++ wieder zurück in den Test geht.

Das heißt also, beide Bedingungen in den Test-Bereichen einfach in []?
 
Diese Schleifendefinition ist ein Loop-Node, der soweit ich das gelesen hab, für solche Sachen einzusetzen sind (Loop-Nodes Beschreibung). Hab ich da was falsch verstanden?
Nein, hast recht. Hab gerade nochmal nachgelesen, man kanns so machen.

Das mit der Kurve++/Runde++ hab ich von hier. Dort wird es so beschrieben, dass es nach den X++ wieder zurück in den Test geht.
Das ist in der UML2 Definition nicht genau spezifiziert worden, das Problem wenn man keine Endknoten einzeichnet liegt darin, dass man in komplexeren Diagrammen oft nicht erkennen kann an welchen Stellen eine Unteraktivität verlassen werden darf. Wir haben uns auf der Uni darauf geeinigt immer Endknoten einzuzeichnen.

Das heißt also, beide Bedingungen in den Test-Bereichen einfach in []?
Ja, aber viel wichtiger wäre es die Bedingungen bei den Verzweigungen im Body in Klammern zu setzen, also "Gegner überholen", "Durchfahre Kurve ohne Vorkommnisse", etc. Einfach alle Kantenbeschriftungen nach Verzweigungsknoten.
 
Das ist in der UML2 Definition nicht genau spezifiziert worden, das Problem wenn man keine Endknoten einzeichnet liegt darin, dass man in komplexeren Diagrammen oft nicht erkennen kann an welchen Stellen eine Unteraktivität verlassen werden darf. Wir haben uns auf der Uni darauf geeinigt immer Endknoten einzuzeichnen.
Das heißt also, einfach 2 Endknoten nach den beiden X++ hinzuzufügen?

Ja, aber viel wichtiger wäre es die Bedingungen bei den Verzweigungen im Body in Klammern zu setzen, also "Gegner überholen", "Durchfahre Kurve ohne Vorkommnisse", etc. Einfach alle Kantenbeschriftungen nach Verzweigungsknoten.
Wollte ich eigentlich auch, aber bei all den Verzweigungen gibt es sehr viele Bedingungen (20-30), die erfüllt sein müssen, damit es mit der Verzweigung weitergeht. Das kann ich ja nicht wirklich alles in eine riesige []-Klammer schreiben. Hast du eine Idee, wie man das sonst lösen kann?
 
Das heißt also, einfach 2 Endknoten nach den beiden X++ hinzuzufügen?
Meiner Meinung nach musst du nur vom X++ Knoten einen Pfeil zu einem Endknoten ziehen.

Wollte ich eigentlich auch, aber bei all den Verzweigungen gibt es sehr viele Bedingungen (20-30), die erfüllt sein müssen, damit es mit der Verzweigung weitergeht. Das kann ich ja nicht wirklich alles in eine riesige []-Klammer schreiben. Hast du eine Idee, wie man das sonst lösen kann?
Ich finde die Beschriftungen die du jetzt dort hast ziemlich gut. Bei einem Aktivitätsdiagramm soll ja Verhalten, und nicht Programmfluss beschrieben werden, daher sind Aussagekräftige Bedingungen sinnvoller als z.B.: x > 5.
Das einzige was du machen solltest ist "Gegner überholen" etc. in "[Gegner überholen]" zu ändern.
 
Hallo mal wieder,

ich möchte auf diesem Aktivitätsdiagramm basierend zwei Diagramme erstellen, die jeweils den Best-Case und Worst-Case darstellen. Welches Diagramm würdet ihr mir da empfehlen?

Gruß,
Cojones
 

Neue Beiträge

Zurück