UML状态图和活动图(课堂PPT)

上传人:日度 文档编号:131122795 上传时间:2020-05-04 格式:PPT 页数:64 大小:871.50KB
返回 下载 相关 举报
UML状态图和活动图(课堂PPT)_第1页
第1页 / 共64页
UML状态图和活动图(课堂PPT)_第2页
第2页 / 共64页
UML状态图和活动图(课堂PPT)_第3页
第3页 / 共64页
UML状态图和活动图(课堂PPT)_第4页
第4页 / 共64页
UML状态图和活动图(课堂PPT)_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《UML状态图和活动图(课堂PPT)》由会员分享,可在线阅读,更多相关《UML状态图和活动图(课堂PPT)(64页珍藏版)》请在金锄头文库上搜索。

1、UML 状态图 课程目标 掌握状态图的定义 符号掌握状态图的动作和事件掌握状态图的建模方法掌握活动图的定义 符号 条件掌握活动图的建模方法 3 本讲内容 状态图的定义 符号状态图的动作和事件状态图的建模方法活动图的定义 符号 条件活动图的建模方法 状态图的定义 状态图用来建模对象是如何改变其状态以响应事件和展示对象从创建到删除的生命周期 状态定义为对象行为在某一个时刻的快照或者转折点 例如 计算机的状态可以定义为开机 启动 工作中 空闲 关机和离线等 状态图的任务就是用来描述一个对象所处的可能状态以及状态之间的转移 并给出状态变化序列的起点与终点 状态图除了可以用于描述对象接收事件触发时的行为

2、状态外 它还可以用于许多其他情况 例如 状态图可以用来说明基于用户输入的屏幕状态改变 也可以用来说明复杂用例的状态进展情况 可建模状态图的对象有 UNIX进程状态图 类用例子系统整个系统 状态图的定义 在一般系统中 不需对每个类创建状态图 当一个类实例 对象 有多种状态 每种状态中的行为表现又不相同 则可创建状态图 例如 银行帐户可以有几种不同的状态 可以打开 关闭或透支 在这些不同状态下 帐户的处理功能是不同的 状态图的符号 状态图由状态 转移和事件组成 联合使用状态和转移可以更好地建模它们 有时需要包含决策点和同步条来显示更高层次的细节信息 1 状态状态图中共有3种独立的状态标记符 如下图

3、所示 基本状态显示为圆角矩形 状态的名称放在矩形中 这种标记符代表模型中满足条件的一个点 例如 诊断机的状态示例可能包含开 关 诊断和空闲等 标准状态的名称指示满足了什么条件 如下图所示 状态图的符号 开始状态和结束状态标记符是指示模型的开始和结束状态的特殊标记符 模型中的开始状态是一个实心点 结束状态是带有圆圈的实心点 模型不必同时具有开始和结束状态 因为模型可以总是运行 从不停止 状态图中可以包含0到多个开始状态 状态图中也可以包含多个结束状态 每一个都表示一个模型能够终止的点 状态图的符号 状态细节是指当对象处于特定状态时 可能要进行一些活动 例如生成报表 进行计算或向另一对象发送事件

4、为了进一步描述对象在特定状态下的一些活动 可加入细节活动 进入 退出 事件和状态历史信息 状态图的符号 送货处理状态图 2 转移转移用来显示从一个状态到另一个状态的处理流 转移使用从一个状态到另一个状态的开放箭头来标记 如下图所示 状态图的符号 下面的示例演示了银行帐户中的转移及其有效状态 如下图所示 状态图的符号 3 决策点决策点在建模状态图时提供了方便 因为它通过在中心位置分组转移到各自的方向 从而提高了状态图的可视性 如下图所示 状态图的符号 4 同步状态图中使用同步条是为了说明并发工作流的分叉与联合 下图所示为同步条的标记符 状态图的符号 条件用来描述状态转移的前提 事件用来指示什么触

5、发了转移 动作用来说明当转移发生时会产生什么情况 事件 条件和动作是转移的三个选项 其定义格式见下图所示 该图描述的信息是 如果guardCondition为true 当anEvent发生时 将执行anAction 并立即进入状态B 状态图的动作和事件 事件 条件 动作 1 事件事件通常在从一个状态到另一个状态的转移路径上直接指定 事件用来指示是什么导致了模型中状态的改变 下图演示了事件的标记符 事件 状态图的动作和事件 2 动作动作说明了当事件发生时发生了什么行为 状态图的动作和事件 3 条件条件说明状态转移必须要满足的前提 条件一般为一个布尔表达式 如下图所示 条件 状态图的动作和事件 练

6、习 阅读一个电梯系统的状态图步骤 1 标识出状态 2 标识出转移 3 标识出事件和动作 状态图的建模方法 状态图建模需要执行以下步骤 1 标识出需要进一步建模的实体 2 标识出每一个实体的开始状态和结束状态 3 确定与每一个实体相关的事件 4 从起始状态开始创建状态图 状态图的建模方法 1 标识出需要进一步建模的实体首先要标识出哪些实体需要使用状态图进一步建模 状态图应该用于复杂的实体 而不必用于具有复杂行为的实体 对于有复杂行为的实体 使用活动图可能会更加适合 具有清晰 有序的状态实体最适合使用状态图进一步建模 后面将会建模一个Grade对象 尤其是它的保存功能 状态图的建模方法 续 2 标

7、识出每一个实体的开始和结束状态要想标识出某个实体的开始状态 需要知道实体是如何实例化的 以及实体是如何开始的 Grade对象在有了一个新的分数需要保存时实例化 要想标识出某个实体的结束状态 需要知道相反的信息 实体何时从系统中退出 Grade对象在完成保存数据的操作之后退出系统 不管该操作是否成功 因此 Grade对象的状态图具有如下描述保存功能的开始状态和结束状态 InformationEntered开始状态 Destroy结束状态 状态图的建模方法 续 3 确定与每一个实体相关的事件事件用来最终完成实体的功能 要想确定实体的事件 需要知道事件的任务 对于Grade对象 它的任务是保存分数

8、进一步了解事件的任务之后 就可以确定Grade对象的事件包括接受数据 成功地保存数据和不成功地保存数据 有了这些事件之后 就可以为Grade对象创建这些事件的状态列表 如下所示 Ready用于数据加载时 Persisting用于数据保存时 Saved用于数据已经保存后 Error用于数据由于出错而未成功保存时 状态图的建模方法 续 4 从开始状态开始创建状态图利用上述的信息 我们就可以创建一个简单的状态图来描述Grade对象的不同状态 以及触发状态改变的事件 如下图所示 状态图的建模方法 续 练习 建模航班状态图创建一个状态图来描述航班如何从提出申请 制定航班计划 售票 起飞 飞行 到着陆的状

9、态过程 练习步骤 1 标识出要建模的实体 2 标识出实体的状态 状态图的建模方法 续 活动图的定义 活动图是一种用于描述系统行为的模型视图 它可用来描述过程 业务过程 工作流 事件流等 中的活动及其迁移 简单地讲 活动图是 OO流程图 活动图的标记符与状态图的标记符非常相似 有时会让人混淆 其实 状态图用来表示单个对象的行为如何改变其状态 而活动图是用来建模不同区域的工作如何彼此交互 活动图的定义 活动图能够附加在如下建模元素中以描述该元素的行为 用例类接口组件节点 活动图的定义 活动图的主要应用1 描述用例的行为活动图对用例描述尤其有用 它可建模用例的工作流 显示用例内部和用例之间的路径 它

10、也可以向读者说明需要满足什么条件用例才会有效 以及用例完成后系统保留的条件或者状态 2 理解工作流程活动图对理解业务处理过程十分有用 可以画出描述业务工作流的活动图与领域专家进行交流 明确业务处理操作是如何进行的 将会有怎样的变化 3 描述复杂过程的算法在这种情况下使用的活动图不过是UML版的程序流程图 常规的顺序 分支过程在活动图中都能得到充分的表现 活动图的定义 活动图的符号 活动图保留了许多传统的流程图的特征 它包含如下元素 活动操作状态转移对象流分叉决策联结 活动活动在活动图中 用来指示要完成某项工作的动作或表示工作流的步骤 其UML标记符是一个带有圆角的矩形 如下图所示 在确定活动名

11、称时应该恰当地命名 选择准确描述所发生动作的几个词 例如 SaveFile或者CreateNewDocument就是比较恰当的活动名称 而Run或者Update对读者而言是不完整的名称 活动图的符号 2 操作 可以用操作在活动中增加更多详细的步骤 操作是活动中执行的小步骤 在下列情况下发生 进入活动时发生的操作 标有entry字样 活动进行时发生的操作 直到离开活动 标有do字样 离开活动时发生的操作 标有exit字样 特定事件发生时的操作 标有event字样和事件名 操作是可选的 但提供的详细信息有助于后面完成系统设计 如果包括操作 则其在活动内显示 不管其属于上面哪一类 下面是带操作的活动

12、例子 活动图的符号 活动图的符号 活动图的符号 3 状态状态的标记符与活动类似 也是带圆角的矩形 但状态的圆角比较小 如下图所示 状态通常使用一个指示系统当前状态的单词或者短语来标识 例如 Stopped是一个状态 而stop则是一个活动 UML包含两个特殊状态 即开始状态和结束状态 开始状态以实心黑点表示 结束状态以带有圆圈的实心黑点表示 活动图的符号 注意 每一个活动图只能有一个开始状态 但是可以有无数个结束状态 如下图所示 与状态图不同 活动图的符号 活动图的符号 4 转移转移用来指示一种状态到另一个状态的控制流 它们可以显示活动之间或者状态之间的控制流 转移的标记符是带开放箭头的实线

13、如下图所示 活动图的符号 综合运用现在已经学习了活动图的4种主要标记符 下面综合运用这些标记来生成一个活动图 如下图所示 活动图的符号 5 决策决策是基于判断条件选择控制流继续的方向 决策的UML符号是一个小菱形标记符 然后从这里再按条件控制分支转移到满足条件的活动 如下图所示 活动图的符号 例描述教师记录学生成绩用例的活动图 活动图的符号 学习活动图中的其他标记符 1 泳道泳道可以使活动图非常整洁 因为它们在很大程度上增强了活动图的可读性 泳道使用几个大矩形框表示 如右图所示 活动图的符号 下面示例显示了一个在Teacher和WebInterface泳道之间交叉转移控制流的活动图 如果没有泳

14、道 该活动图就无法说明Teacher使用了Logon ChooseStudent和ChangeStudentInfo活动 WebInterface使用ValidateUser RetrieveStudentInfo和PersistUserInfo活动 如下图所示 活动图的符号 活动图的符号 2 分叉和联结分叉用来表示并行活动的分支处理 联结用来把并行活动的汇集到同步处理 分叉和联结在UML中的表示方法相似 都用粗黑线表示 分叉具有一个转移入口 两个或者多个转移出口 分岔描述了单向处理控制流分成了多个控制流 联结与此相反 联结具有两个或者多个转移入口 只有一个出口 联结描述了不同的处理控制流合并

15、到一起形成一个单向处理 如下图所示 活动图的符号 如果一个处理在其他处理之前到达了联结 它将会等待 直到所有的处理都准备好之后才会向联结传递控制权 活动图的符号 左例演示了分叉中的一个处理时间长于另一个的情况 当然 这完全是由每一个处理中的活动数假定的 由于我们不知道每一个活动有多长 因此不能保证哪一个首先完成 为此 我们在让用户访问应用程序之前插入了一个联结 以便确保两个独立的处理彼此连接在一起 活动图的符号 3 对象流 活动可以输入和输出对象 并可以修改对象状态 我们能够在活动图上用对象流表示这些 如下图所示 活动图的符号 活动图的建模 创建活动图共有5个任务 1 标识需要活动图的用例 2

16、 建模每一个用例的主路径 3 建模每一个用例的从路径 4 添加游泳道来标识活动的事务分区 5 改进高层活动并添加更多活动到图中 活动图的建模 1 标识用例在建模活动图之前 需要首先确定要建模什么 下面的教师更新分数用例是一组较大用例的一部分 我们就从它开始 如下图所示 这个用例实际上使用了3个用例 我们不仅有UpdateGrade用例 还有SaveGrade和LoadGrade用例 活动图的建模 2 建模主路径在开始创建用例的活动图时 往往先建立一条明显的路径执行工作流 然后从该路径进行扩展 如下图所示 该路径仅考虑用例的正常活动路径 登录 选择学生 加载他们的分数 修改分数 保存修改结果等活动过程 没有考虑任何错误和判断的路径 活动图的建模 3 建模从路径考虑用例其他可能的工作流情况 如处理错误 或许是执行其他活动 活动图的建模 活动图的建模 4 添加泳道泳道对于提高活动图的可读性非常有益 在本例中也不例外 在活动图建模这一步中 可把活动图分成了两个游泳道 如下图所示 第一个游泳道是Teacher 第二个是Website Teacher是用例的参与者 而Website是提供后台功能的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号