状态机图
- 格式:ppt
- 大小:1.44 MB
- 文档页数:34
UML的状态机图UML(Unified Modeling Language)是一种标准化的建模语言,用于描述软件系统中的各种构建块和交互关系。
UML的状态机图是其中一个最为重要的建模图之一。
什么是状态机图?状态机图是一种用于描述对象行为的UML图表。
它以有限状态机的形式描述对象或系统在不同状态下对事件以及其他因素产生的响应。
状态机图显示了对象的状态及其之间的转换。
状态机图主要由三个部分组成:状态、转移和事件。
状态表示对象或软件系统处于的状态,转移表示状态之间的转换,事件则表示导致状态转换的触发器或条件。
状态机图的建立过程在建立状态机图之前,需要先确定对象或软件系统的状态、转移和事件。
1. 确定状态首先需要确定对象或软件系统可能出现的所有状态。
每个状态都应该有一个名称、一个描述以及一个标识符。
状态可以是“初态”(启动状态)、“终态”(结束状态)或“中间态”(中间状态)。
2. 确定转移和事件根据对象或软件系统的实际情况,确定状态之间的转移以及导致转移的事件或条件。
每个转移都应该有一个名称、一个标识符以及一个触发器。
触发器可以是一些条件,例如键盘上的一个按键或计时器到期,也可以是上一个状态完成某些任务导致的条件。
例如,在一个自动售货机的状态机图中,售货机可能处于“待机”、“已付款”、“正在出货”、“出货完成”四种状态。
当用户选择购买商品并投入硬币时,售货机会从“待机”状态转移到“已付款”状态,并且会关闭“使用硬币”事件。
当售货机完成出货并关闭接口时,它会从“正在出货”状态转移到“出货完成”状态。
状态机图的用途状态机图有很多用途。
它可以用于描述产品或系统的交互设计,也可以用于演示API和网络安全策略的行为。
一些常见的用途包括:1. 软件开发状态机图可以在软件开发过程中用于确定软件的行为、处理错误和异常情况、定义状态转换以及帮助代码实现。
通过建立状态机图,可以更好地理解软件中各个状态的流转情况,从而提高软件开发效率。
状态机图1.概述状态机图(State Machine Diagram)是用来显示状态机的图,包括简单状态、转换和嵌套的复合状态等,一个典型的状态机图如图1所示:图1. 状态机图2.基本表示符号状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。
2.1状态(State)状态是对象生命周期中的一个条件或形态。
状态由对象的属性值、与其他对象的关系以及正在执行的活动来确定。
在UML中,状态用圆角矩形和状态名表示,初始状态用实心圆表示,终止状态用牛眼表示,如图2所示:图2. 状态状态可以有一个或多个分栏,这些分栏是可选的,包括名称分栏、嵌套区域、内部转换分栏等,如图3所示:图3. 带分栏的状态状态也可用圆角矩形上带有状态名称标签的方框表示,如图4所示:图4. 带有名称标签符号的状态2.2转移(Transaction)转移表示状态之间可能的路径,可以表示外部转换(用箭头表示),也可以表示内部转换(嵌套在状态内部)。
如图5所示:图5. 转移2.3事件(Event)事件是对,在特定时间和空间上,所发生的有意义的事情。
在状态机中,事件触发转移,事件或者显示在转换之上,或显示在状态以内。
共有四种类型的事件:信号事件、调用事件、时间事件、改变事件。
信号用于对象间异步传递的信息包,它没有任何操作,只有自身携带的信息。
信号事件是通过信号来触发的事件,在UML中,信号如图6所示:图6. 信号调用事件是请求在类语境的实例上调用特定的操作,在UML中,调用事件如图7所示:图7. 调用事件时间事件用关键字after表示,说明事件被触发的临界时间。
改变事件用关键字when表示,说明将事件改变所满足的条件。
如图8所示:图8. 时间事件和改变事件2.4伪状态(Pseudo State)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。
它是一个瞬时状态,用于构造转换的细节。
当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。
体建模。
②考虑是否为重要的业务的履行者建立一个泳道。
③建立初始状态和终止状态,并识别该业务过程的前置条件和后置条件。
④从初始状态开始,说明随着时间发生的动作,并在活动图中表示它们。
⑤如果涉及重要的对象,则把它们也加入到活动图中。
如果有必要,可展示对象的属性值和状态。
⑥连接这些动作的控制流和对象流。
如果需要,使用分支和合并来描述条件路径和迭代,使用分岔和汇合来描述并发的动作流。
⑦若动作较为复杂,则它可调用一个活动,在该活动中描述其细节。
由于业务过程所描述的功能有些是要由软件系统来完成的,若针对这样的功能建立了活动模型,也可以说是对软件系统的(局部)功能建立了活动模型。
(2)对操作建模用活动图对操作建模是指把活动图作为流程图来对操作的算法细节建模。
与传统的流程图不同的是,活动图能够展示并发。
在OOA阶段,仅用活动图对关键的复杂操作进行建模。
除非想直接从模型自动生成代码,即使在OOD阶段也并不要求用活动图对每个操作的算法都建立模型。
对一个操作建模时,应遵循如下策略。
①收集该操作所涉及的事物,包括操作的参数、可能的返回类型、它所属于的类以及与之相关的类的特征。
②识别操作的前置条件和后置条件以及操作所属的类在操作执行期间必须保持的不变式。
③从该操作的初始状态开始,按照时间顺序设立动作。
④如果需要,使用分支和合并来描述条件路径和迭代。
⑤仅当这个操作属于主动类时,才在必要时用分岔和汇合来描述并发的控制流。
8.3.3 状态机图在现实世界中的事物通常都有自己的生命周期。
通过对它们的观察,可以得出如下结论。
①大多数事物在其生命周期中经历了不同的状态,且这些状态是通过对现实的理解(建模)而定义的。
②一个事物在各时期内所处的状态是明确的。
③在一个状态内,事物要完成一定的任务。
④在现实世界存在着引起事物的状态发生变化的事件。
⑤事物在其状态间按次序转化。
⑥事物从一个状态到另一个状态的转化通常是即时的。
⑦当事件发生时,事物可能需要采取一些动作。