在系统分析员对某对象建模时,最自然的方法并不是着眼于从活动到活动的控制流,而是着眼于从状态到状态的控制流。
状态机
定义: 状态机是展示状态与状态转换的图。在计算机科学中,状态机的使用非常普遍:在编译技术中通常用有限状态机描述词法分析过程;在操作系统的进程调度中,通常用状态机描述进程的各个状态之间的转化关系。此外,在面向对象分析与设计中,对象的状态、状态的转换、触发状态转换的事件、对象对事件的响应(即事件的行为)都可以用状态机来描述。
组成: 由状态、转换、时间、活动、和动作 5 部分组成。
- 状态:表示一个模型在其生存期内的状况,一个状态的生存期是一个有限的时间段。如满足某些条件或等待某些事件。
- 转换表示两个不同状态之间的联系,事件可以触发状态之间的转换。
- 事件是在某个时间产生的,可以触发状态转换的部分,如信号、对象的创建和销毁、超时和条件的改变等。
- 活动是在状态机中进行的一个非原子的执行,由一系列动作组成。
- 动作是一个可执行的原子计算,它导致状态的变更或者返回一个值。
状态图
一个状态图表示一个状态机,主要用于表现从一个状态到另一个状态的控制流。它不仅可以展现一个对象拥有的状态,还可以说明事件(如消息的接收、错误、条件变更等)如何随着时间的推移来影响这些状态。
一个简单状态图: