




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章状态图和活动图统一建模语言UnifiedModelingLanguage 第五章状态图和活动图 状态图状态图的定义状态图的符号状态图的动作和事件组合状态状态图的建模方法活动图活动图的定义活动图的符号活动图中的条件活动图的建模方法 状态图的定义 状态图用来建模对象是如何改变其状态以响应事件和展示对象从创建到删除的生命周期 状态定义为对象行为在某一个时刻的快照或者转折点 例如 计算机的状态可以定义为开机 启动 工作中 空闲 关机和离线等 状态图的任务就是用来描述一个对象所处的可能状态以及状态之间的转移 并给出状态变化序列的起点与终点 状态图除了可以用于描述对象接收事件触发时的行为状态外 它还可以用于许多其他情况 例如 状态图可以用来说明基于用户输入的屏幕状态改变 也可以用来说明复杂用例的状态进展情况 可建模状态图的对象有 UNIX进程状态图 状态图的定义 类用例子系统整个系统 在一般系统中 不需对每个类创建状态图 当一个类实例 对象 有多种状态 每种状态中的行为表现又不相同 则可创建状态图 例如 银行帐户可以有几种不同的状态 可以打开 关闭或透支 在这些不同状态下 帐户的处理功能是不同的 第五章状态图和活动图 状态图状态图的定义状态图的符号状态图的动作和事件组合状态状态图的建模方法活动图活动图的定义活动图的符号活动图中的条件活动图的建模方法 状态图的符号 状态图由状态 转移和事件组成 联合使用状态和转移可以更好地建模它们 有时需要包含决策点和同步条来显示更高层次的细节信息 1 状态状态图中共有3种独立的状态标记符 如下图所示 基本状态显示为圆角矩形 状态的名称放在矩形中 这种标记符代表模型中满足条件的一个点 例如 诊断机的状态示例可能包含开 关 诊断和空闲等 标准状态的名称指示满足了什么条件 如下图所示 状态图的符号 续 开始状态和结束状态标记符是指示模型的开始和结束状态的特殊标记符 模型中的开始状态是一个实心点 结束状态是带有圆圈的实心点 模型不必同时具有开始和结束状态 因为模型可以总是运行 从不停止 状态图中可以包含0到多个开始状态 状态图中也可以包含多个结束状态 每一个都表示一个模型能够终止的点 状态图的符号 续 状态细节是指当对象处于特定状态时 可能要进行一些活动 例如生成报表 进行计算或向另一对象发送事件 为了进一步描述对象在特定状态下的一些活动 可加入细节活动 进入 退出 事件和状态历史信息 状态图的符号 续 送货处理状态图 2 转移转移用来显示从一个状态到另一个状态的处理流 转移使用从一个状态到另一个状态的开放箭头来标记 如下图所示 状态图的符号 续 下面的示例演示了银行帐户中的转移及其有效状态 如下图所示 状态图的符号 续 3 决策点决策点在建模状态图时提供了方便 因为它通过在中心位置分组转移到各自的方向 从而提高了状态图的可视性 如下图所示 状态图的符号 续 4 同步状态图中使用同步条是为了说明并发工作流的分叉与联合 下图所示为同步条的标记符 状态图的符号 续 第五章状态图和活动图 状态图状态图的定义状态图的符号状态图的动作和事件组合状态状态图的建模方法活动图活动图的定义活动图的符号活动图中的条件活动图的建模方法 条件用来描述状态转移的前提 事件用来指示什么触发了转移 动作用来说明当转移发生时会产生什么情况 事件 条件和动作是转移的三个选项 其定义格式见下图所示 该图描述的信息是 如果guardCondition为true 当anEvent发生时 将执行anAction 并立即进入状态B 状态图的动作和事件 事件 条件 动作 状态图的动作和事件 1 事件事件通常在从一个状态到另一个状态的转移路径上直接指定 事件用来指示是什么导致了模型中状态的改变 下图演示了事件的标记符 事件 状态图的动作和事件 续 2 动作动作说明了当事件发生时发生了什么行为 Event类型的动作示例如右图 这个示例说明了只要ResetUsers事件传递的所有用户都没有打开 他们就会被全部删除 动作 状态图的动作和事件 续 3 条件条件说明状态转移必须要满足的前提 条件一般为一个布尔表达式 如下图所示 条件 练习 阅读一个电梯系统的状态图步骤 1 标识出状态 2 标识出转移 3 标识出事件和动作 第五章状态图和活动图 状态图状态图的定义状态图的符号状态图的动作和事件组合状态状态图的建模方法活动图活动图的定义活动图的符号活动图中的条件活动图的建模方法 组合状态 一个对象可以通过同步操作同时拥有多个状态 有时 对象还可以拥有层次结构的状态 当单个状态具有独有的附加的子状态时 可以在状态图中使用层次结构的状态 组合状态 续 在一个复杂的状态中可以细化为多个子状态的合成 该复杂状态称为组合状态 如下图所示 组合状态 续 收录机状态图 并发子状态在一个状态中可能多个并发的子状态 如右图所示的订货对象状态图 组合状态 续 第五章状态图和活动图 状态图状态图的定义状态图的符号状态图的动作和事件组合状态状态图的建模方法活动图活动图的定义活动图的符号活动图中的条件活动图的建模方法 状态图的建模方法 状态图建模需要执行以下步骤 1 标识出需要进一步建模的实体 2 标识出每一个实体的开始状态和结束状态 3 确定与每一个实体相关的事件 4 从起始状态开始创建状态图 5 如果必要则创建组合状态 状态图的建模方法 续 1 标识出需要进一步建模的实体首先要标识出哪些实体需要使用状态图进一步建模 状态图应该用于复杂的实体 而不必用于具有复杂行为的实体 对于有复杂行为的实体 使用活动图可能会更加适合 具有清晰 有序的状态实体最适合使用状态图进一步建模 后面将会建模一个Grade对象 尤其是它的保存功能 状态图的建模方法 续 2 标识出每一个实体的开始和结束状态要想标识出某个实体的开始状态 需要知道实体是如何实例化的 以及实体是如何开始的 Grade对象在有了一个新的分数需要保存时实例化 要想标识出某个实体的结束状态 需要知道相反的信息 实体何时从系统中退出 Grade对象在完成保存数据的操作之后退出系统 不管该操作是否成功 状态图的建模方法 续 因此 Grade对象的状态图具有如下描述保存功能的开始状态和结束状态 InformationEntered开始状态 Destroy结束状态 状态图的建模方法 续 3 确定与每一个实体相关的事件事件用来最终完成实体的功能 要想确定实体的事件 需要知道事件的任务 对于Grade对象 它的任务是保存分数 进一步了解事件的任务之后 就可以确定Grade对象的事件包括接受数据 成功地保存数据和不成功地保存数据 有了这些事件之后 就可以为Grade对象创建这些事件的状态列表 如下所示 Ready用于数据加载时 Persisting用于数据保存时 Saved用于数据已经保存后 Error用于数据由于出错而未成功保存时 状态图的建模方法 续 4 从开始状态开始创建状态图利用上述的信息 我们就可以创建一个简单的状态图来描述Grade对象的不同状态 以及触发状态改变的事件 如下图所示 状态图的建模方法 续 5 如果必要则指定合成状态创建状态图的第一步工作完成之后 可以检查一下是否需要通过创建合成状态来进一步修饰某些状态 在本例中 我们认为Persisting状态过于笼统 因此可以为其提供子状态 其中包括Load Update和Save 或者只包括Insert 如下图所示 状态图的建模方法 续 状态图的建模方法 续 练习 建模航班状态图创建一个状态图来描述航班如何从提出申请 制定航班计划 售票 起飞 飞行 到着陆的状态过程 练习步骤 1 标识出要建模的实体 2 标识出实体的状态 第五章状态图和活动图 状态图状态图的定义状态图的符号状态图的动作和事件组合状态状态图的建模方法活动图活动图的定义活动图的符号活动图中的条件活动图的建模方法 活动图的定义 活动图是一种用于描述系统行为的模型视图 它可用来描述过程 业务过程 工作流 事件流等 中的活动及其迁移 简单地讲 活动图是 OO流程图 活动图的标记符与状态图的标记符非常相似 有时会让人混淆 其实 状态图用来表示单个对象的行为如何改变其状态 而活动图是用来建模不同区域的工作如何彼此交互 活动图的定义 活动图能够附加在如下建模元素中以描述该元素的行为 用例类接口组件节点 活动图的定义 活动图的主要应用1 描述用例的行为活动图对用例描述尤其有用 它可建模用例的工作流 显示用例内部和用例之间的路径 它也可以向读者说明需要满足什么条件用例才会有效 以及用例完成后系统保留的条件或者状态 活动图的定义 2 理解工作流程活动图对理解业务处理过程十分有用 可以画出描述业务工作流的活动图与领域专家进行交流 明确业务处理操作是如何进行的 将会有怎样的变化 3 描述复杂过程的算法在这种情况下使用的活动图不过是UML版的程序流程图 常规的顺序 分支过程在活动图中都能得到充分的表现 第五章状态图和活动图 状态图状态图的定义状态图的符号状态图的动作和事件组合状态状态图的建模方法活动图活动图的定义活动图的符号活动图中的条件活动图的建模方法 活动图的符号 活动图保留了许多传统的流程图的特征 它包含如下元素 活动操作状态转移对象流分叉决策联结 活动图的符号 活动活动在活动图中 用来指示要完成某项工作的动作或表示工作流的步骤 其UML标记符是一个带有圆角的矩形 如下图所示 在确定活动名称时应该恰当地命名 选择准确描述所发生动作的几个词 例如 SaveFile或者CreateNewDocument就是比较恰当的活动名称 而Run或者Update对读者而言是不完整的名称 2 操作 可以用操作在活动中增加更多详细的步骤 操作是活动中执行的小步骤 在下列情况下发生 进入活动时发生的操作 标有entry字样 活动进行时发生的操作 直到离开活动 标有do字样 离开活动时发生的操作 标有exit字样 特定事件发生时的操作 标有event字样和事件名 操作是可选的 但提供的详细信息有助于后面完成系统设计 如果包括操作 则其在活动内显示 不管其属于上面哪一类 下面是带操作的活动例子 活动图的符号 活动图的符号 活动图的符号 3 状态状态的标记符与活动类似 也是带圆角的矩形 但状态的圆角比较小 如下图所示 状态通常使用一个指示系统当前状态的单词或者短语来标识 例如 Stopped是一个状态 而stop则是一个活动 UML包含两个特殊状态 即开始状态和结束状态 开始状态以实心黑点表示 结束状态以带有圆圈的实心黑点表示 活动图的符号 注意 每一个活动图只能有一个开始状态 但是可以有无数个结束状态 如下图所示 与状态图不同 活动图的符号 活动图的符号 4 转移转移用来指示一种状态到另一个状态的控制流 它们可以显示活动之间或者状态之间的控制流 转移的标记符是带开放箭头的实线 如下图所示 活动图的符号 综合运用现在已经学习了活动图的4种主要标记符 下面综合运用这些标记来生成一个活动图 如下图所示 活动图的符号 5 决策决策是基于判断条件选择控制流继续的方向 决策的UML符号是一个小菱形标记符 然后从这里再按条件控制分支转移到满足条件的活动 如下图所示 活动图的符号 例描述教师记录学生成绩用例的活动图 活动图的符号 学习活动图中的其他标记符 1 泳道泳道可以使活动图非常整洁 因为它们在很大程度上增强了活动图的可读性 泳道使用几个大矩形框表示 如右图所示 活动图的符号 下面示例显示了一个在Teacher和WebInterface泳道之间交叉转移控制流的活动图 如果没有泳道 该活动图就无法说明Teacher使用了Logon ChooseStudent和ChangeStudentInfo活动 WebInterface使用ValidateUser RetrieveStudentInfo和PersistUserInfo活动 如下图所示 活动图的符号 活动图的符号 2 分叉和联结分叉用来表示并行活动的分支处理 联结用来把并行活动的汇集到同步处理 分叉和联结在UML中的表示方法相似 都用粗黑线表示 分叉具有一个转移入口 两个或者多个转移出口 分岔描述了单向处理控制流分成了多个控制流 联结与此相反 联结具有两个或者多个转移入口 只有一个出口 联结描述了不同的处理控制流合并到一起形成一个单向处理 如下图所示 活动图的符号 如果一个处理在其他处理之前到达了联结 它将会等待 直到所有的处理都准备好之后才会向联结传递控制权 活动图的符号 左例演示了分叉中的一个处理时间长于另一个的情况 当然 这完全是由每一个处理中的活动数假定的 由于我们不知道每一个活动有多长 因此不能保证哪一个首先完成 为此 我们在让用户访问应用程序之前插入了一个联结 以便确保两个独立的处理彼此连接在一起 活动图的符号 3 对象流 活动可以输入和输出对象 并可以修改对象状态 我们能够在活动图上用对象流表示这些 如下图所示 活动图的符号 第五章状态图和活动图 状态图状态图的定义状态图的符号状态图的动作和事件组合状态状态图的建模方法活动图活动图的定义活动图的符号活动图的建模方法 活动图的建模 创建活动图共有5个任务 1 标识需要活动图的用例 2 建模每一个用例的主路径 3 建模每一个用例的从路径 4 添加游泳道来标识活动的事务分区 5 改进高层活动并添加更多活动到图中 活动图的建模 1 标识用例在建模活动图之前 需要首先确定要建模什么 下面的教师更新分数用例是一组较大用例的一部分 我们就从它开始 如下图所示 这个用例实际上使用了3个用例 我们不仅有UpdateGrade用例 还有SaveGrade和LoadGrade用例 活动图的建模 2 建模主路径在开始创建用例的活动图时 往往先建立一条明显的路径执行工作流 然后从该路径进行扩展 如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全科中级职称课件书
- 2025年手术室专科护士考试试题(附答案)
- 全氧窑炉知识培训总结课件
- 2025年N3层级护士三基+临床实践指南理论知识模拟试题及参考答案
- 2025年法医证学考试题及答案
- 全国教材课件
- 某企业全方位数字监控解决方案
- 2025版电动起重机租赁合作协议书
- 2025版城市绿化工程专用冲击钻施工合作协议
- 2025版股权出让居间全程管理服务合同
- 公司三年超额利润分享方案(2021-2023年)
- 2024-2030年中国带灯轻触开关行业竞争态势与需求趋势预测报告
- 第十二届广东省安全知识竞赛暨粤港澳安全知识竞赛选拔赛考试题库资料(含答案)
- DL∕T 1362-2014 输变电工程项目质量管理规程
- 业务跟单培训
- 河北省唐山市路北区2023-2024学年八年级下学期期末数学试题
- DL-T-5161.13-2018电气装置安装工程质量检验及评定规程第13部分:电力变流设备施工质量检验
- 安全顾问聘请协议
- 班组长计划管理能力考试题库-上(选择题)
- 八年级物理下册期末试卷综合测试卷(含答案)
- (正式版)HGT 20656-2024 化工供暖通风与空气调节详细设计内容和深度规定
评论
0/150
提交评论