状态图0521(免费阅读).ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态图 linx166@163.com 讲授内容 状态图基本表示 状态、事件、转移、活动 状态图练习 状态图知识点小节 什么是状态图 按电灯的开关时,电灯改变了它的状态 按遥控器的调频按钮时,电视机的状态由显示一个频道的节目变为显示另一个频道的节目 经过一段时间,洗衣机由洗涤变为漂洗状态 如何表示这些变化呢? 状态图 状态图对对象的生存周期建立模型来描述对象随时间变化的动态行为。 状态图要素 对象: 教师。 事件:预备铃响,上课铃响,下课铃响。 状态:初态、终态;准备、教学。 转移: 对象与状态 状态是对象某一属性的取值。比如教师类的对象。 class Teacher { private boolean isWorking; …………. } 对象与状态 class Teacher { private boolean isWorking; …………. public void receivephone () { …. If (isWorking ==true) refuse(); else listen(); } } class maintest { static public void main(){ Teacher nie= new Teacher(); nie.setWork( false); nie.receivephone(); Teacher lin = new Teacher(); lin.setWork(true); lin.receivephone(); } 对象与状态 当给定状态下的多个对象接收到相同事件时会执行相同的动作, 然而处于不同状态下的对象会通过不同的动作对同一事件做出不同的反应。 状态图 示意图: 1 状态 状态由一个带圆角的矩形表示。 状态图标可以分为: 名称 内部转换 2 转换 转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。 转换可以标注与此转换相关的选项如事件、动作和监护条件。 3 初始状态 初始状态代表状态图的起始位置,只能作为转换的源,而不能作为转换的目标。 初始状态在一个状态图中只允许有一个,它用一个实心的圆表示。 4 终止状态 终止状态是模型元素的最后状态,是一个状态图的终止点。 终止状态只能作为转换的目标,而不能作为转换的源。 终止状态在一个状态图中可以有多个,它用一个套有一个实心圆的空心圆表示。 5 判定 判定在状态图中的位置:工作流在此处按监护条件的取值而发生分支。 判定用空心小菱形表示。 因为监护条件为布尔表达式,所以通常条件下的判定只有一个入转换和两个出转换。 根据监护条件的真假可以触发不同的分支转换。 事件 引起对象状态变化的就是事件。 事件存在很多形式,比如:接收到从一个对象到另一个对象的调用;某些值的改变或一个时间段的终结。 事件分类 调用事件。表示对操作的调度。可以理解为一个对象对另一个对象发出的消息。 变化事件:布尔表达式中的变量发生变化后,该表达式也变了,从而满足某些条件。(when) 时间事件:满足一定时间表达式的情况出现,到了某一时间点或经过某一时间段。(after、when) 信号事件:信号事件表示对象接收到信号这种情况,信号事件一般会触发状态的转移。 在状态图中增加细节 子状态(substate) 某些状态存在于单个状态之中,因此它们被称为子状态。子状态以两种形式出现:顺序子状态和并发子状态。 如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。 顺序子状态(sequential substate) 正如其名字一样,顺序子状态按照顺序一个接着一个出现 并发子状态 同时执行的状态是并发状态。 课堂练习 每学期放假,同学们都要去买票,现在大家分析预定车票和买票过程中,车票这个对象的状态图。 初始状态是Available状态。在票开始对外出售前,一部分票是给预约者预留的。 当顾客预定票,被预定的票首先处于锁定状态,此时顾客仍有是否确实要买这张票的选择权,故这张票可能出售给顾客也可能因为顾客不要这张票而解除锁定状态。 如果超过了指定的期限顾客仍未做出选择,此票被自动解除锁定状态。预约者也可以换其他车次的票,如果这样的话,最初预约票也可以对外出售。 小结 系统中的对象改变自身的状态以响应事件和时间的流逝。UML状态图就能捕获这些状态变

文档评论(0)

kabudou + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档