第五讲——对高级行为建模.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五讲——对高级行为建模

对高级行为建模 行为建模——状态图 什么是状态图 如何使用事件、动作和保护条件 如何对子状态、历史状态和连接点建模 什么是状态图 一个普遍的现象是随着时间的流逝,周围的对象都要经历变化 任何计算机系统也是如此。当系统与用户(也可能是其他系统)交互的时候,组成系统的对象为了适应交互需要经历必要的变化 如果要对系统建立模型,那么模型中必须要反映出这种变化 一种表征系统变化的方法可以说成是对象改变了自己的状态(state)以响应事件和时间的流逝 UML状态图(state diagram)能够展示这种变化。它描述了一个对象所处的可能状态以及状态之间的转换,并给出了状态变化序列的起点和终点。 状态图,又叫状态机或状态表,只是对单个对象建立模型 状态名的首字母大写 圆角矩形代表一个状态,状态间带箭头的实线代表状态的迁移(转换) 箭头指向目标状态 图中的实心圆代表状态转换的起点,公牛眼形圆圈代表终点。 三种状态类型 简单状态:不包含任何其他状态 组成状态:在分离的区域中包含一个或多个状态机 子状态机状态:包含带有入口和出口的可重用状态机。包含状态被称为子状态机状态,被包含的状态机被称为子状态机 在状态图标中增加细节 可以把状态图标分成两个区域 最上面的区域保存状态名(不管分不分区都得有状态名) 下面的区域保存在该状态中发生的活动 3个常用的活动是 入口动作(entry),即系统进入该状态时要发生的动作 出口动作(exit),即系统离开该状态时要发生的动作 动作(do)是系统处于该状态时要发生的动作。还可以增加其他的动作或事件 增加转换的细节:事件和动作 状态转换线添加一些细节。可以指明引起转换发生的事件(触发器事件,trigger event)和引起状态变化所需执行的计算(动作,action) 添加的事件和动作写在转换线上,触发器事件和动作名之间用反斜杠隔开 有时候一个事件会引起没有相关动作的状态转换,或者有时一个转换是由于某个状态完成了它的活动所引起(无触发器转换或自动转换或完成转换) 增加转换的细节:保护条件 保护条件(guard condition)——当满足这个条件时,转换才能发生 组成状态 一个状态可以被分解成多个状态,从而更详细地描述对象内部的转换 GUI处于Working状态时仍然要经历变化,即状态的变化 组成状态包含一个或多个区域,最简单的组成状态只包含一个区域,在区域里是两个或多于两个的状态 因为这些状态存在于单个状态之中,因此它们被称为子状态(substate)。状态可以任意嵌套 区域 组成状态可以拥有任意数量的区域,每个区域包含一个状态机,区域与区域之间的状态是互斥 如果组成状态包含两个或更多的区域,那么就说该状态是正交的,并且isOrthogonal属性被设置为true 如果每个区域的操作都是互相独立的,那么就可以并发地运行同一状态内的各个区域 子状态以两种形式出现: 顺序子状态(sequential substate) 并发子状态(concurrent substate) 顺序子状态 顺序子状态按照顺序一个接着一个出现 重新分析前面提到的子状态GUI的Working状态,可以得到以下的状态序列: Awaiting User Input(等待用户输入,简单记为Awaiting状态) Registering User Input(登记用户输入,简单记为Registering状态) Visualizing User Input(显示用户输入,简单记为Visualizing状态) 并发子状态 转换和转换类型 伪状态为管理组成状态的复杂转换提供条件 分叉 结合 汇合 选择 4种伪状态由枚举类型PseudostateKind定 义,并可以分配给Pseudostate的实例 分叉伪状态 分叉伪状态应用于组成状态中不同区域状态之间的转换,它将单独的一个转换分成多个路径,每个路径指向不同区域的不同状态,分叉的结果是导致不同区域中的行为并发执行 分叉伪状态 分叉转换也可以来自组成状态内部的一个区域 结合伪状态 结合伪状态指的是有很多转换进来,但只有一个转换出去 在结合点,状态机要等待所有的输入转换都到达以后才可以触发新的转换 结合伪状态 同样的技术也适用于转换到的状态在组成状态之外 汇合伪状态和选择伪状态 选择伪状态的标准表示方法是菱形 有两种方法来表示选择伪状态 左边的表示方法将布尔表达式置于各个分支之上 右边的表示方法则将布尔表达式的共同元素置于菱形之内,同时将表达式的不同部分置于各个分支上 汇合提供了将多个转换指向同一个目标的方法 如果所有转换到同一目标状态的状态是由相同的事件触发的,并且没有各自的约束或事件动作,那么可以将这些状态表示成状态列表,即表示一组状态的状态,它列出了所包含的各个状态的名称 终止状态 当一个类元被终止时

文档评论(0)

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

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

1亿VIP精品文档

相关文档