3.1状态图
行为模型包括:状态模型、活动模型、交互模型
状态模型——使用状态图
活动模型——使用活动图
交互模型——使用顺序图、协作图
状态模型涉及一个对象,活动模型和交互模型涉及多个对象
状态图(状态模型)
——描述一个对象的生命周期内的状态及状态变迁,以及引起状态变迁的事件和对象在状态中的动作等。“状态”对应某些变量或属性取了特定值。
活动图(状态模型)
——描述对象的一个活动到另一个活动的控制流,活动的序列,工作的流程和并发的处理行为等。这两个活动可以是一个对象的,也可以是多个对象的。
交互模型
——描述对象之间通过消息的传递,来协作完成一个用例的功能。
组成部分:事件、状态、转换;
事件(Event)
,它表示对一个在时间和空间上占据一定位置的有意义的事情的规格说明。通常事件可以分成多种类型:信号、调用事件、变化事件、时间事件
等。
信号(Signal)
是作为两个对象之间通信媒介的命名的实体 。 信号,就是由一个对象异步地发送、并由另一个对象(即状态图所对应的对象)接收的已命名的实体。
调用事件(Call Event)
是指一个对象对操作调用的接收。
变化事件(change event)
是指依赖于指定属性值的布尔表达式得到满足。
时间事件(Time event)
是表示一段时间推移的事件。
状态
状态的组成
状态名—
—状态的标识符
状态变量
——进行计数的内部变量
入口/出口动作
——转入状态时必须执行的动作/转出状态时必须执行的动作
内部转移
——不导致状态发生变化的动作
组合状态/子状态
组合状态
——一个状态内部存在一个子状态的变化过程
子状态
——包含在某一个状态内部的状态
历史状态
——记录了组合状态被转出时的活跃子状态是哪个
转换
转换
是两个状态间的一种关系,表示对象将在当前状态中执行动作,并在某个特定事件发生或某个特定的条件满足时进入后继状态。转换是由如下5部分组成:(1) 源状态(source state)(2) 事件触发(Event trigger)(3) 监护条件(guard condition)(4) 动作(Action)(5) 目标状态(target state)
状态图又称为状态机,它描述了用例、协作和方法的动态行为,也描述了类的行为。
状态图显示的是从状态到状态的控制流。
状态图应该用于复杂状态的对象,而不必用于具有复杂行为的对象。
对于有复杂行为的对象,使用活动图会更加合适。
状态
一个对象所处的境况。通常是执行了一个(或多个)活动后的结局。
活动
一段程序代码的执行,对应于若干个步骤的集成。
不同的状态会导致不同的功能(对应于若干个活动)的执行。