有两种类型的状态机图:
但我无法得到它们之间的确切差异
我将尝试以非常简单的方式解释差异:你是对的,UML定义了两种类型的状态机:
行为状态机定义行为,重点关注系统状态如何作为对事件发生的反应而变化。理解非常重要。接受事件的事件被定义为转换时的触发器。这种状态机是众所周知的。
协议状态机不主要定义行为。它的基本作用是定义,何时以及在何种条件下可以调用拥有实例的各个行为特征(操作,接收)。
生命中协议状态机的典型示例可以是计算机启动过程:
让我们想象计算机的工作状态:加载BIOS,加载操作系统,准备好。在加载Bios之前无法执行加载操作系统,在加载操作系统之前无法执行应用程序。协议状态机将具有3个状态和两个转换。转换将在加载bios状态之前定义计算机loadBios()的操作,在加载Bios和加载OS的状态之间加载loadOS()。
协议是一组执行操作和实例的其他行为特征的规则。
协议状态机IS状态机,状态机的一种特殊情况,适用于协议规范。
总之,协议状态机是普通UML状态机对协议规范/建模的具体应用。
您可能希望阅读本文以了解有关协议状态机及其如何使用UML状态机的更多信息:
http://www.uml-diagrams.org/protocol-state-machine-diagrams.html
在UML中,协议状态机是设置合法事件序列的“规范”,而不指定实现的行为(状态变化除外),而行为状态机是“实现”状态机可以采取行动(行为)。
从这个角度来看,协议状态机就像一个接口(它纯粹是抽象的),而行为状态机就像一个类。行为状态机可以实现协议状态机。
您可以在文章Building Protocol State Machines in UML 2,Michael Jesse Chonoles和James A. Schardt中找到更多详细信息,包括围绕数据库访问的非平凡示例。