Download presentation
Presentation is loading. Please wait.
Published byEugénio Canto Modified 5年之前
1
UML状态图 【学习目标】 定义状态图 为什么要建模状态图 学习状态图的标记符组件 学习如何指定状态的动作和事件 学习如何建模状态图
2
状态图的标记符与活动图的标记符非常相似,有时会让人混淆。其实,状态图用来表示单个对象的行为如何改变其状态。而活动图是用来建模不同区域的工作如何彼此交互。
一、 定义状态图 状态图用来建模对象是如何改变其状态以响应事件和展示对象从创建到删除的生命周期。状态定义为对象行为在某一个时刻的快照或者转折点。例如,计算机的状态可以定义为开机、启动、工作中、空闲、关机和离线等。状态图的任务就是用来描述一个对象所处的可能状态以及状态之间的转移,并给出状态变化序列的起点与终点。
3
二、 为什么要建模状态图 状态图除了可以用于描述对象接收事件触发时的行为状态外,它还可以用于许多其他情况。例如,状态图可以用来说明基于用户输人的屏幕状态改变,也可以用来说明复杂用例的状态进展情况。 可建模状态图的对象有: 类 用例 子系统 整个系统 UNIX进程状态图
4
在一般系统中,不需对每个类创建状态图。当一个类实例(对象)有多种状态,每种状态中的行为表现又不相同,则可创建状态图。例如,银行帐户可以有几种不同的状态,可以打开、关闭或透支。在这些不同状态下,帐户的处理功能是不同的。
5
三、状态图的标记符 状态图由状态、转移和事件组成。本节介绍状态和转移,下一节介绍事件。联合使用状态和转移可以更好地建模它们,有时需要包含决策点和同步条来显示更高层次的细节信息。 1、 状态 状态图中共有3种独立的状态标记符,如下图所示: 状态图中可以包含0到多个开始状态。状态图中也可以包含多个结束状态,每一个都表示一个模型能够终止的点。
6
状态细节是指当对象处于特定状态时,可能要进行一些活动,例如生成报表、进行计算或向另一对象发送事件。
为了进一步描述对象在特定状态下的一些活动,可加入细节活动、进入、退出、事件和状态历史信息。
7
送货处理状态图
8
2.转移 转移用来显示从一个状态到另一个状态的处理流。转移使用从一个状态到另一个状态的开放箭头来标记,如下图所示。
9
3.决策点 决策点在建模状态图时提供了方便,因为它通过在中心位置分组转移到各自的方向,从而提高了状态图的可视性,如下图所示。
10
4.同步 状态图中使用同步是为了说明并发工作流的分岔与联合。下图所示为同步条的标记符。
11
例 建筑住宅的状态图中,存在两个状态同步。
12
四、转移的事件、条件和动作 条件用来描述状态转移的前提。事件用来指示什么触发了转移,动作用来说明当转移发生时会产生什么情况。事件、条件和动作是转移的三个选项,其定义格式见下图所示。 该图描述的信息是——“如果guardCondition为true,当anEvent发生时,将执行anAction,并立即进入状态B”
13
1.事件 事件通常在从一个状态到另一个状态的转移路径上直接指定。事件用来指示是什么导致了模型中状态的改变。下图演示了事件的标记符。 IC卡电话状态图
14
练习: 阅读一个电梯系统的状态图 步骤: 1)标识出状态。 2)标识出转移。 3)标识出事件和动作。
15
五、学习如何建模状态图 建模状态图需要执行以下步骤: 1)标识出需要进一步建模的实体。 首先要标识出哪些实体需要使用状态图进一步建模。状态图应该用于复杂的实体,而不必用于具有复杂行为的实体。具有清晰、有序的状态实体最适合使用状态图进一步建模。 2)标识出每一个实体的开始状态和结束状态。 要想标识出某个实体的开始状态,需要知道实体是如何实例化的,以及实体是如何开始的。 3)确定与每一个实体相关的事件。 事件用来最终完成实体的功能。要想确定实体的事件,需要知道事件的任务。
16
练习: 建模航班状态图 创建一个状态图来描述航班如何从提出申请、制定航班计划、售票、起飞、飞行、到着陆的状态过程。 练习步骤; 1)标识出要建模的实体。 2)标识出实体的状态。
Similar presentations