统一建模语言PPT教学课件-第5章状态图和活动图.ppt_第1页
统一建模语言PPT教学课件-第5章状态图和活动图.ppt_第2页
统一建模语言PPT教学课件-第5章状态图和活动图.ppt_第3页
统一建模语言PPT教学课件-第5章状态图和活动图.ppt_第4页
统一建模语言PPT教学课件-第5章状态图和活动图.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章 状态图和活动图 统一建模语言 unified modeling language 第五章 状态图和活动图 状态图 状态图的定义 状态图的符号 状态图的动作和事件 组合状态 状态图的建模方法 活动图 活动图的定义 活动图的符号 活动图中的条件 活动图的建模方法 状态图的定义 状态图用来建模对象是如何改变其状态以响应 事件和展示对象从创建到删除的生命周期。状态定 义为对象行为在某一个时刻的快照或者转折点。例 如,计算机的状态可以定义为开机、启动、工作中 、空闲、关机和离线等。状态图的任务就是用来描 述一个对象所处的可能状态以及状态之间的转移, 并给出状态变化序列的起点与终点。 状态图除了可以用于描述对象接收事件触发时的行为状态 外,它还可以用于许多其他情况。例如,状态图可以用来说明 基于用户输入的屏幕状态改变,也可以用来说明复杂用例的状 态进展情况。可建模状态图的对象有: 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对象的状态图具有如下描述保存功 能的开始状态和结束状态: information entered 开始状态。 destroy 结束状态。 状态图的建模方法(续) 3确定与每一个实体相关的事件 事件用来最终完成实体的功能。要想确定实体的事件,需要 知道事件的任务。对于grade对象,它的任务是保存分数。进一 步了解事件的任务之后,就可以确定grade对象的事件包括接受 数据、成功地保存数据和不成功地保存数据。 有了这些事件之后,就可以为grade对象创建这些事件的状 态列表,如下所示: ready 用于数据加载时。 persisting 用于数据保存时。 saved 用于数据已经保存后。 error 用于数据由于出错而未成功保存时。 状态图的建模方法(续) 4从开始状态开始创建 状态图 利用上述的信息,我 们就可以创建一个简单 的状态图来描述grade对 象的不同状态,以及触 发状态改变的事件,如 下图所示。 状态图的建模方法(续) 5如果必要则指定合成状态 创建状态图的第一步工作完成之后,可以检查一下是否 需要通过创建合成状态来进一步修饰某些状态。 在本例中,我们认为persisting状态过于笼统,因此可 以为其提供子状态,其中包括load、update和save,或者只 包括insert,如下图所示。 状态图的建模方法(续) 状态图的建模方法(续) 练习: 建模航班状态图 创建一个状态图来描述航班如何从提出申请、 制定航班计划、售票、起飞、飞行、到着陆的状态 过程。 练习步骤; 1)标识出要建模的实体。 2)标识出实体的状态。 第五章 状态图和活动图 状态图 状态图的定义 状态图的符号 状态图的动作和事件 组合状态 状态图的建模方法 活动图 活动图的定义 活动图的符号 活动图中的条件 活动图的建模方法 活动图的定义 活动图是一种用于描述系统行为的模型视图,它可用 来描述过程(业务过程、工作流、事件流等)中的活动及 其迁移。简单地讲,活动图是“oo流程图”。 活动图的标记符与状态图的标记符非常相似,有时 会让人混淆。其实,状态图用来表示单个对象的行为如何 改变其状态。而活动图是用来建模不同区域的工作如何彼 此交互。 活动图的定义 活动图能够附加在如下建模元素中以描述该 元素的行为。 用例 类 接口 组件 节点 活动图的定义 活动图的主要应用 1.描述用例的行为 活动图对用例描述尤其有用,它可建模用例的 工作流,显示用例内部和用例之间的路径;它也可 以向读者说明需要满足什么条件用例才会有效,以 及用例完成后系统保留的条件或者状态。 活动图的定义 2理解工作流程 活动图对理解业务处理过程十分有用。可以画出 描述业务工作流的活动图与领域专家进行交流,明确 业务处理操作是如何进行的,将会有怎样的变化。 3描述复杂过程的算法 在这种情况下使用的活动图不过是uml版的程序流 程图,常规的顺序、分支过程在活动图中都能得到充 分的表现。 第五章 状态图和活动图 状态图 状态图的定义 状态图的符号 状态图的动作和事件 组合状态 状态图的建模方法 活动图 活动图的定义 活动图的符号 活动图中的条件 活动图的建模方法 活动图的符号 活动图保留了许多传统的流 程图的特征,它包含如下元素。 活动 操作 状态 转移 对象流 分叉 决策 联结 活动图的符号 1. 活动 活动在活动图中,用来指示要完成某项工作的动作 或表示工作流的步骤。其uml标记符是一个带有圆角 的矩形,如下图所示。 在确定活动名称时应该恰当地命名,选择准确描 述所发生动作的几个词。例如,save file或者 create new document就是比较恰当的活动名称,而 run或者update 对读者而言是不完整的名称。 2. 操作 可以用操作在活动中增加更多详细的步骤。操作是活动中执 行的小步骤。在下列情况下发生: 进入活动时发生的操作,标有entry字样。 活动进行时发生的操作,直到离开活动,标有do字样。 离开活动时发生的操作,标有exit字样。 特定事件发生时的操作,标有event字样和事件名。 操作是可选的,但提供的详细信息有助于后面完成系统设计 。如果包括操作,则其在活动内显示,不管其属于上面哪一类。 下面是带操作的活动例子。 活动图的符号 活动图的符号 活动图的符号 3. 状态 状态的标记符与活动类似,也是带圆角的矩形,但状态的 圆角比较小,如下图所示。 状态通常使用一个指示系统当前状态的单词或者短语来标 识。例如,stopped是一个状态,而stop则是一个活动。 uml包含两个特殊状态,即开始状态和结束状态。开始 状态以实心黑点表示,结束状态以带有圆圈的实心黑点表示 。 活动图的符号 注意:每一个活动图只能有一个开始状态,但是可 以有无数个结束状态。如下图所示: 与状态图不同 活动图的符号 活动图的符号 4转移 转移用来指示一种状态到另一个状态的控制流。它们可以显示 活动之间或者状态之间的控制流。转移的标记符是带开放箭头的 实线,如下图所示。 活动图的符号 综合运用 现在已经学习了活动图的4种主要标记符,下面综合运用 这些标记来生成一个活动图,如下图所示。 活动图的符号 5. 决策 决策是基于判断条件选择控制流继续的方向。决策的uml符 号是一个小菱形标记符,然后从这里再按条件控制分支转移到 满足条件的活动,如下图所示。 活动图的符号 例 描述教师记录学生成绩用例的活动图 活动图的符号 学习活动图中的其他标记符 1.泳道 泳道可以使活动 图非常整洁,因为它 们在很大程度上增强 了活动图的可读性。 泳道使用几个大矩形 框表示,如右图所示 。 活动图的符号 下面示例显示了一个在teacher和web interface 泳道之间交叉转移控制流的活动图。如果没有泳道, 该活动图就无法说明teacher 使用了logon、choose student和change student info活动,web interface 使用validate user、retrieve student info和 persist user info活动,如下图所示。 活动图的符号 活动图的符号 2.分叉和联结 分叉用来表示并行活动的分支处理,联结用来把并行活动 的汇集到同步处理。 分叉和联结在uml中的表示方法相似,都用粗黑线表示。分 叉具有一个转移入口,两个或者多个转移出口。分岔描述了单 向处理控制流分成了多个控制流。联结与此相反,联结具有两 个或者多个转移入口,只有一个出口。联结描述了不同的处理 控制流合并到一起形成一个单向处理,如下图所示。 活动图的符号 如果一个处理在其他处理之前到达了联结,它将会等待, 直到所有的处理都准备好之后才会向联结传递控制权。 活动图的符号 左例演示了分叉中的一 个处理时间长于另一个的 情况。当然,这完全是由 每一个处理中的活动数假 定的。由于我们不知道每 一个活动有多长,因此不 能保证哪一个首先完成。 为此,我们在让用户访问 应用程序之前插入了一个 联结,以便确保两个独立 的处理彼此连接在一起。 活动图的符号 3对象流 活动可以输入和输出对象,并可以修改对象状 态。我们能够在活动图上用对象流表示这些。如下 图所示。 活动图的符号 第五章 状态图和活动图 状态图 状态图的定义 状态图的符号 状态图的动作和事件 组合状态 状态图的建模方法 活动图 活动图的定义 活动图的符号 活动图的建模方法 活动图的建模 创建活动图共有5个任务: 1)标识需要活动图的用例。 2)建模每一个用例的主路径。 3)建模每一个用例的从路径。 4)添加游泳道来标识活动的事务分区。 5)改进高层活动并添加更多活动到图中。 活动图的建模 1 标识用例 在建模活动图之前,需要首先确定要建模什么。下面的教师 更新分数用例是一组较大用例的一部分,我们就从它开始。如下 图所示。这个用例实际上使用了3个用例。我们不仅有update grade用例,还有save grade和load grade用例。 活动图的建模 2建模主路径 在开始创建用例的活动图时,往往先建立一条明显的路径 执行工作流,然后从该路径进行扩展,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论