ch08 UML状态图.pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 第8章 UML状态图 ? 定义状态图 为什么要建模状态图 学习状态图的标记符组件 学习如何指定状态的动作和事件 学习如何使用合成状态 学习如何建模状态图 【学习目标】 状态图的标记符与活动图的标记符非常相似,有时会让人混淆。其实,状态图用来表示单个对象的行为如何改变其状态。而活动图是用来建模不同区域的工作如何彼此交互。 一、 定义状态图 状态图用来建模对象是如何改变其状态以响应事件和展示对象从创建到删除的生命周期。状态定义为对象行为在某一个时刻的快照或者转折点。例如,计算机的状态可以定义为开机、启动、工作中、空闲、关机和离线等。状态图的任务就是用来描述一个对象所处的可能状态以及状态之间的转移,并给出状态变化序列的起点与终点。 二、 为什么要建模状态图 状态图除了可以用于描述对象接收事件触发时的行为状态外,它还可以用于许多其他情况。例如,状态图可以用来说明基于用户输人的屏幕状态改变,也可以用来说明复杂用例的状态进展情况。 可建模状态图的对象有: 类 用例 子系统 整个系统 UNIX进程状态图 在一般系统中,不需对每个类创建状态图。当一个类实例(对象)有多种状态,每种状态中的行为表现又不相同,则可创建状态图。例如,银行帐户可以有几种不同的状态,可以打开、关闭或透支。在这些不同状态下,帐户的处理功能是不同的。 三、状态图的标记符 状态图由状态、转移和事件组成。本节介绍状态和转移,下一节介绍事件。联合使用状态和转移可以更好地建模它们,有时需要包含决策点和同步条来显示更高层次的细节信息。 1、 状态 状态图中共有3种独立的状态标记符,如下图所示 基本状态显示为圆角图形。状态的名称放在矩形中。这种标记符代表模型中满足条件的一个点。例如,诊断机的状态示例可能包含开、关、诊断和空闲等。标准状态的名称指示满足了什么条件,如下图所示。 开始状态和结束状态标记符是指示模型的开始和结束状态的特殊标记符。模型中的开始状态是一个实心点。结束状态是带有圆圈的实心点。模型不必同时具有开始和结束状态,因为模型可以总是运行,从不停止。 状态图中可以包含0到多个开始状态。状态图中也可以包含多个结束状态,每一个都表示一个模型能够终止的点。 状态细节是指当对象处于特定状态时,可能要进行一些活动,例如生成报表、进行计算或向另一对象发送事件。 为了进一步描述对象在特定状态下的一些活动,可加入细节活动、进入、退出、事件和状态历史信息。 送货处理状态图 2.转移 转移用来显示从一个状态到另一个状态的处理流。转移使用从一个状态到另一个状态的开放箭头来标记,如下图所示。 下面的示例演示了银行帐户中的转移及其有效状态,如下图所示。 3.决策点 决策点在建模状态图时提供了方便,因为它通过在中心位置分组转移到各自的方向,从而提高了状态图的可视性,如下图所示。 4.同步 状态图中使用同步条是为了说明并发工作流的分岔与联合。下图所示为同步条的标记符。 例 建筑住宅的状态图中,存在两个状态同步。 四、转移的事件、条件和动作 条件用来描述状态转移的前提。事件用来指示什么触发了转移,动作用来说明当转移发生时会产生什么情况。事件、条件和动作是转移的三个选项,其定义格式见下图所示。 该图描述的信息是——“如果guardCondition为true,当anEvent发生时,将执行anAction,并立即进入状态B” 1.事件 事件通常在从一个状态到另一个状态的转移路径上直接指定。事件用来指示是什么导致了模型中状态的改变。下图演示了事件的标记符。 IC卡电话状态图 2.动作 动作说明了当事件发生时发生了什么行为。 Event类型的动作示例如下: ResetUsers(users)[Users->for All(Open=False)]/users->empty 这个示例说明了只要ResetUsers事件传递的所有用户都没有打开,他们就会被全部删除。 3.条件 条件说明状态转移必须要满足的前提。条件一般为一个布尔表达式。如下图所示。 练习: 阅读一个电梯系统的状态图 步骤: 1)标识出状态。 2)标识出转移。 3)标识出事件和动作。 五、组合状态 一个对象可以通过同步操作同时拥有多个状态。有时,对象还可以拥有层次结构的状态。当单个状态具有独有的附加的子状态时,可以在状态图中使用层次结构的状态。 五.组合状态 在一个复杂的状态中可以细化为多个子状态的合成。该复杂状态称为组合状态。如下图所示。 *

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档