2016-04-23 6 views
2

Ich muss alle grundlegenden Elemente eines UML 2.5-Zustandsdiagramms identifizieren. Leider scheint die Notation dieser Diagramme vieldeutig zu sein, da es online viele verschiedene Varianten gibt.Wie interpretiere ich ein UML 2.5 State Machine Diagramm?

Meine Interpretation ist, dass jede Zustandsmaschine Diagramm, besteht aus einer Reihe von Zuständen und einer Reihe von Übergängen.

Jeder Zustand hat:

  • eine optionale Eintrag Aktion
  • eine optionale tun Aktion
  • eine optionale Ausgang Aktion

Jeder Übergang hat:

  • ein auslösendes Ereignis ,
  • eine optionale Voraussetzung
  • a Übergangsaktion (post-condition).

Mein Verständnis davon, wie die Notation Werke sind in Abbildung 1 (Beispiel einer elektrischen Tür Funktionalität im Anschluss an der Notation [Voraussetzung] Ereignis/[Übergang Aktion]) und in Abbildung 2

zusammengefasst werden

Beispiel: wenn ein Ereignis ausgelöst wird (zB schließen-Taste gedrückt wird), die Voraussetzung (wenn ein ny) ausgewertet wird (zum Beispiel ist das Tor leer), und wenn die Voraussetzung erfüllt ist, eine Übergang Aktion (z Tür schließen) ausgelöst wird.

Abbildung 1 Electric Door State Machine

Abbildung 2 enter image description here

Meine Fragen:

  1. Ist Transition Aktion die Realisierung des Übergangs oder ist einfach eine Aktion, die während des Übergangs passiert. In einfachen Worten, wenn die Übergangsaktion/s falsch gehen, wird der Übergang (neue Zustand) erfolgreich sein?Meine Frage ergibt sich im Wesentlichen aus der Tatsache , dass viele Quellen deuten darauf hin, dass anstelle eines Übergang Aktion verwenden, erhalten Sie einen Eintrag Aktion verwenden können, wenn Sie auf dem neuen Zustand ankommen. In meinem Verständnis, obwohl eine Übergang Aktion ist die Realisierung des Übergangs und damit geschieht, bevor den neuen Zustand, im Vergleich zur Eintrag Aktion Eingabe, die unmittelbar nach der Ankunft im neuen Zustand geschieht. Das sind also zwei völlig verschiedene Arten von Handlungen in Bezug auf den Übergang selbst und die Zeit. Es ist wichtig für mich hier zu verstehen, die Timing dieser Aktionen.
  2. Ist meine allgemeine Interpretation korrekt? (ZB mein Verständnis von dem, was ein Ereignis, post-Zustand und Übergang Aktion kann von Abbildung 1)

Ich weiß, dass es ein Dutzend Variationen von Zustandsdiagrammen, damit die verschiedenen Darstellungen/Interpretationen, aber ich bin interessiert an der UML 2.5 one.

Antwort

2

Die Transition Aktion ist, was UML 2.5 Staaten als Assoziationsende eines Übergangs:

Wirkung: Behavior [0..1] {Subsets Element :: ownedElement} (gegenüber A_effect_transition :: Übergang) Gibt ein optionales Verhalten an, das ausgeführt werden soll, wenn der Übergang ausgelöst wird.

Während der <<entry>> eines Staates ist ein Verhalten dem Staat selbst zugeordnet. Das heißt, es wird von wo auch immer der Übergang kommt ausgelöst. Im Gegensatz dazu ist der obige Effekt nur Auslöser entlang des Übergangs.

Der Effekt kann nicht "schief gehen". Jedes Verhalten wird ausgeführt. Keine Bedingung ist hier markiert.

Ob ein Übergang ausgelöst wird, kann durch die [guard] gesteuert werden, die Sie fälschlicherweise [precondition] genannt haben. (Man kann sich streiten beginnen, aber Sie müssen mit [guard] gehen.)

Wache: Constraint [0..1] {Subsets Namespace :: ownedRule} (gegenüber A_guard_transition :: Übergang) Ein Wächter ist eine Einschränkung, die eine feinkörnige Kontrolle über das Abfeuern des Übergangs bietet. Der Schutz wird ausgewertet, wenn ein Event-Ereignis von der StateMachine ausgelöst wird. Wenn der Schutz zu diesem Zeitpunkt wahr ist, kann der Übergang aktiviert werden, andernfalls ist er deaktiviert. Wachen sollten reine Ausdrücke ohne Nebenwirkungen sein. Wächterausdrücke mit Nebenwirkungen sind schlecht ausgebildet.

In Bezug auf das Timing können Sie sich ein Token denken, das entlang der Zustände reist. Wenn der Schutz Sie passieren lässt, wird das Verhalten <<exit>> ausgeführt. Dann ist der Übergang effect und schließlich das <<entry>> Verhalten des nächsten Staates.

+0

Thomas danke für Ihre Antwort.In Bezug auf die Übergangsaktion/Wirkung schlagen Sie vor, dass dies nicht die "Realisierung des Übergangs" ist? Kann es irgendeine Handlung/Verhalten sein? Ich betrachte es aus Sicht der Risikoanalyse, also versuche ich genau jedes Element im Diagramm zu verstehen und wie etwas schiefgehen kann. Übrigens, was ist eine gute Quelle, um die Diagramme zu verstehen? Ich benutzte http://www.uml-diagrams.org/ (wo Wächter eigentlich Vorbedingung genannt wird.) – donparalias

+0

Nun, die Realisierung des Übergangs ist der vollständige Satz (Wächter, Effekt, Auslöser). Sie können jedes Verhalten in den Effekt einfügen und es wird zusammen mit dem Token ausgeführt, das den Übergang durchläuft. Ich kann nicht viel empfehlen. Die UML-Diagramme sind sicher eine gute Quelle. Die UML-Spezifikation selbst ist keine Lernquelle. Es ist für Werkzeugentwickler (und vielleicht Nerds) geschrieben. Natürlich kannst du hier mit Fragen viel lernen, wie du es gefragt hast :-) –