[UML] Unterschied zwischen State Chart Diagram und Activity Diagram

08/17/2017 19:34 stotterer09#1
Hallo,
ich frage mich gerade wo der genaue Unterschied zwischen einem Activity Diagram und einem Statechart Diagram im Bezug auf UML liegt.

Hoffe da kann mir jemand weiterhelfen

Grüße
08/17/2017 23:10 Serraniel#2
Bei einem Aktivitätsdiagramm stellst du Programmabläufe schematisch da. Jeder Kasten symbolisiert dabei eine Aktivität, welcher du miteinander verknüpfst. Bei einem Zustandsdiagramm hast du nur Zustände in den Kästen. Die Pfeile stellen dabei Transitionen zwischen den Zuständen dar.

Beispiel Fahrkartenautomat (jetzt mal ohne "Abbrechen" und sowas einfach Straight forward), hast du z. B. folgende Aktivitäten, welche du modellieren könntest (hab jetzt nichts zum modellieren parat, daher versucht ich das mal textuell darzustellen):
Ziel wählen -> (while(zu wenig Geld): Geld zählen -> Geld fordern) -> Ticket drucken

In einem Zustandsdiagramm würdest du das eher wie folgt aufbauen:
Idle -> Zielwahl -> Bezahlen -> Ticket Druck -> Idle

Wobei Idle jeweils durch Start und Ende ersetzt sein können. Die Transitionen sind in der Regel auch mit einem Namen gekennzeichnet.
Unterschied ist z. B., dass in einem Zustand des Zustandsdiagramms mehrere Aktivitäten auch stattfinden können. Zum Bezahlzustand könntest du also die komplette Aktitvitätsreihe der Geld zählen Schleife des Aktivitätsdiagramm zählen.

Bei komplexer Software kann es sich folglich lohnen, die Software als ganzes in einem Zustandsdiagramm zu modellieren und für jeden Zustand ein eigenes Aktivitätsdiagramm aufzustellen.
08/18/2017 12:14 stotterer09#3
Quote:
Originally Posted by Serraniel View Post
Bei einem Aktivitätsdiagramm stellst du Programmabläufe schematisch da. Jeder Kasten symbolisiert dabei eine Aktivität, welcher du miteinander verknüpfst. Bei einem Zustandsdiagramm hast du nur Zustände in den Kästen. Die Pfeile stellen dabei Transitionen zwischen den Zuständen dar.

Beispiel Fahrkartenautomat (jetzt mal ohne "Abbrechen" und sowas einfach Straight forward), hast du z. B. folgende Aktivitäten, welche du modellieren könntest (hab jetzt nichts zum modellieren parat, daher versucht ich das mal textuell darzustellen):
Ziel wählen -> (while(zu wenig Geld): Geld zählen -> Geld fordern) -> Ticket drucken

In einem Zustandsdiagramm würdest du das eher wie folgt aufbauen:
Idle -> Zielwahl -> Bezahlen -> Ticket Druck -> Idle

Wobei Idle jeweils durch Start und Ende ersetzt sein können. Die Transitionen sind in der Regel auch mit einem Namen gekennzeichnet.
Unterschied ist z. B., dass in einem Zustand des Zustandsdiagramms mehrere Aktivitäten auch stattfinden können. Zum Bezahlzustand könntest du also die komplette Aktitvitätsreihe der Geld zählen Schleife des Aktivitätsdiagramm zählen.

Bei komplexer Software kann es sich folglich lohnen, die Software als ganzes in einem Zustandsdiagramm zu modellieren und für jeden Zustand ein eigenes Aktivitätsdiagramm aufzustellen.
Ahh okay vielen Dank ich habs endlich gecheckt