Има два типа диаграма на държавната машина:
Диаграма на държавната машина
Протоколна държавна машина
но не мога да разбера точните разлики между тях
Има два типа диаграма на държавната машина:
Диаграма на държавната машина
Протоколна държавна машина
но не мога да разбера точните разлики между тях
Ще се опитам да обясня разликата по много прост начин: Прав сте, UML дефинира два типа State Machine:
Поведенчески
Протоколно
Поведенческата машина на състоянието дефинира поведението с фокус върху това как се променят състоянията на системата като реакция на възникване на събитие. Много е важно да се разбере. Събития, чиито събития се приемат, се определят като тригери при преходи. Този тип държавна машина е много добре позната.
Протоколната държавна машина не определя основно поведението. Неговата основна роля е да дефинира кога и при какви условия могат да бъдат извикани отделни поведенчески характеристики (операции, рецепции) на притежаващия екземпляр.
Типични примери за протоколна държавна машина от живота може да бъде процес на стартиране на компютър:
Нека си представим работни състояния на компютъра: Зареждане на BIOS, Зареждане на ОС, Подготвен. Не можете да изпълните зареждането на ОС, преди да се зареди BIOS, не можете да изпълните вашето приложение, преди да се зареди ОС. Протоколната държавна машина ще има 3 състояния и два прехода. Преходите ще имат дефинирани операции на loadBios() на компютъра преди зареждане на биос състояние, loadOS() между състоянията на зареждане на Bios и зареждане на ОС.
Протоколът е набор от правила за изпълнение на операции и други поведенчески характеристики на екземпляра.
Протоколна държавна машина Е държавна машина, специален случай на държавна машина, приложен към спецификацията на протокола.
В обобщение, машината за състояние на протокола е конкретно приложение на обикновена машина за състояние на UML към спецификация/моделиране на протокол.
Може да искате да прочетете тази статия, за да научите повече за машината за състояние на протокола и как тя използва машина за състояние на UML:
http://www.uml-diagrams.org/protocol-state-machine-diagrams.html
В UML протоколна държавна машина е «спецификация» за задаване на законни поредици от събития, без да се уточнява поведението на изпълнение (различно от промени в състоянието), докато поведенческата държавна машина е «реализация» на държавната машина може да предприема действия (поведения).
От тази гледна точка машината за състояние на протокол е като интерфейс (той е чисто абстрактен), докато машината за състояние на поведение е като клас. Една поведенческа държавна машина може да реализира протоколна държавна машина.
Можете да намерите допълнителни подробности, включително нетривиален пример, ориентиран към достъпа до бази данни, в статията Изграждане на протоколни държавни машини в UML 2, от Майкъл Джеси Чонолес и Джеймс А. Шард.