2016-05-04 6 views
1

ich für eine Prüfung studiere und eine Frage nach einem der vorhergehenden Prüfungen ist:Statechart vs State

enter image description here

Viele Antworten im Web sagen Statecharts und Statemachines dasselbe sind? Wenn nicht, könnte jemand den Unterschied in Bezug auf diese Frage erklären.

Wenn jemand Beispiele von beiden geben könnte, würde es wirklich helfen. Dank

+0

Mögliche Duplikate von [Ist StateMachine und Statechart gleich?] (Http://StackOverflow.com/Questions/8192724/does-statemachine-and-Statechart-mean-the-Same) –

+0

Ich sah dies aber immer noch don verstehe die Unterschiede nicht. Gibt es irgendwo ein Beispiel für ein Zustandsdiagramm und eine Zustandsmaschine nebeneinander – user3541209

+0

Sie sind fast gleich.UML-Spezifikation: Die in UML verwendete spezifische Form von Automaten mit endlichen Zuständen basiert auf einer objektorientierten Variante des Zustandsformats von David Harel. –

Antwort

0

Eine Zustandsmaschine ist ein mathematisches Modell der Berechnung, die weniger allgemeinen Zweck als eine Turing-Maschine ist. Eine weitere gebräuchliche Verwendung des Begriffs "Zustandsmaschine" ist der Code, der dieses Modell implementiert und auf einem Computer ausgeführt wird.

Im Gegensatz dazu ein Zustand-Diagramm ist eine Beschreibung eine Zustandsmaschine, in der Regel als ein Diagramm oder eine Tabelle dargestellt. Das Wort "Diagramm" ist lateinisch für "Papier", also bedeutet es etwas geschrieben oder gezeichnet.

Es gibt viele Arten von Zustandsmaschinen, einschließlich Mealy, Moore und Harel. (Ob Harel eine Art State-Machine-Formalismus oder nur eine bessere State-Chart-Notation definiert hat, ist mir unklar.) UML ist eine Obermenge von diesen, mit einer einheitlichen Oberflächennotation für das zugrundeliegende Modell. Sowohl das Modell als auch die grafische Notation beschreiben ein Design für eine Zustandsmaschine, die ausgeführt werden könnte. Die grafische Notation, die das Modell darstellt, könnte als Zustandsdiagramm betrachtet werden.

Ich denke, die Frage, die Sie zitieren, ist tatsächlich verwirrt und verwirrend. Harels Arbeit von 1984 bezeichnete den Mealy- und Moore-Formalismus als "konventionell", aber dieses Wort könnte nun auch für Harels Arbeit gelten. Der Begriff "Zustandsdiagramm" bezieht sich wahrscheinlich auf Harel oder UML, die in Mealy- oder Moore-Zustandsautomaten abgebildet werden können. Ich würde die Frage dennoch beantworten, indem ich die Unterschiede aufzähle.

2

Ein Statechart unterscheidet sich ziemlich von einem endlichen Automaten (ich gehe davon aus, dass dies mit "konventionellen" Automaten gemeint ist). Statecharts beziehen sich auf Harels Notation, die 1984 erfunden wurde und als eine signifikante Notationserweiterung gegenüber traditionellen endlichen Automaten vorgeschlagen wurde. Statecharts sind in die UML-Sprache integriert worden (obwohl sie sich auf verhaltensstatusorientierte Maschinen beziehen, und UML unterstützt auch einen anderen Begriff, der als Protokollzustandsmaschinen bezeichnet wird, um die Verwirrung zu erhöhen). Die wichtigsten wichtigen Unterschiede sind, dass Statecharts eigentlich eine Art von "hierarchischen" State Machines sind. States können geschachtelte Statusmaschinen enthalten (auf jeder Tiefebene). Darüber hinaus wurde der Begriff der orthogonalen Regionen hinzugefügt, um verschiedene parallel laufende Sub-Statecharts zu modellieren, und der Begriff der History-Zustände (entweder seichtes History oder Deep History) kann verwendet werden, um sich daran zu erinnern, welches Substate beim erneuten Eintreten zu sehen ist ein zusammengesetzter Zustand. All diese zusätzlichen Funktionen machen Statecharts viel skalierbarer und expressiver als einfache, flache State-Maschinen. Statecharts ermöglichen auch das Hinzufügen von Aktionen, die Ereignissen zugeordnet sind (entweder innerhalb eines Status oder bei einem Übergang zwischen Zuständen). Es gibt viele verschiedene (oft kommerzielle) Werkzeuge, die es erlauben, ausführbaren Code aus einem Statechart vollständig zu generieren oder Modellverhalten zu simulieren (z. B. StateMate, Rhapsody, Stateflow, Yakindu Statechart Tools, visualSTATE und viele mehr). Sie werden auch häufig in der Industrie verwendet, hauptsächlich im Bereich von eingebetteten und reaktiven Systemen. Aus diesem Grund können Statecharts als eine der Erfolgsgeschichten ausführbarer Modellierung angesehen werden.