ch09_状态图与建模.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态图及建模 状态图及建模 状态图 实体的生存期比较复杂时,需要状态图对类的所有实例的生命周期建模。 大多数面向商业的应用中的类不需要状态图 以下情况经常使用状态图 动态模型中产生或接收大量信息的类 界面类 实时系统中的类 状态图 状态图 状态机和状态图建模 I 引 言 在软件系统中有这样一类对象, 它们一方面需要处理各种随机发生的事件序列,通过相应的动态行为产生对事件的响应 另一方面,其特定时刻的动态行为取决于此对象在早些时刻的行为的结果。 I 引 言 根据当前事件,以及对以前事件的响应的结果决定对当前事件的响应的软件对象的动态行为,称为是事件驱动的。 在UML里,最适合于描述这类动态行为的建模手段,就是状态机。 状态机 用状态:记录以前的动态行为的结果, 用转移(迁移):描述软件对象对外来事件的响应以及响应的状态的变化。 例如:图1描述一个软件的图形用户界面的动态行为的状态机。 它描述的是一个位图观察器的图象浏览工具的动态行为。 它可以通过鼠标在窗口上拖动图象,以观察图象的不同局部。 状态机:在类层次反映状态与状态转化的图,它是一个类的对象的所有可能的生命历程的模型。主要用来捕捉外部事件引起的变化,它将一个对象与其外部世界隔离开来独立考察其行为。不宜用来描述系统的整体运作(如有此要求,可用顺序图)。状态机用来描述界面和控制类业务比较合适。 (问题:对象任何一个新的属性值组合就是一个新状态,状态空间太大) 如:对于“汽车”对象,可能有“型号”、“车况”、“使用情况”、“公里数”、“汽油剩余量”等属性。 不应取“公里数”或“汽油剩余量”作为状态属性,可取“使用情况”作为属性状态。则,“汽车”对象的有限个不同状态:“跑车”、“停车”、“维修”、“闲置”、“报废”等。 9.3 事件Event 事件是指某时刻发生的事情 事件是指已发生并可能引发某种活动的一件事 效应:为响应事件而执行的行为 活动: 由效应触发的实际行为 9.3 事件Event 不同类型的事件 调用事件:表示操作的调用 信号事件 信号是指从一个对象到另一个对象的单项数据流动 信号事件指某时刻发生的事情 变化事件 满足布尔表达式而引起的事件(对控制条件的连续测试),表示时间段 when( battery power lower limit) 时间事件 在绝对时间上或某个时间后发生的事情引起的事情,表示时间点 When(date = 2011/11/1) After (10s) defer事件(延迟事件) 格式为事件名/defer。 延迟事件在本状态中不进行处理,而将其推迟到下一个状态再处理 练习 用状态图描述简单信号灯的变化 当发生一个转移时,该转移进入的状态为活动状态,它将执行相应的动作。 当发生一个转移离开一个状态时,该状态变为非活动状态。 当标在迁移箭头上的事件出现时会引起状态的迁移。此时,首先执行引起迁移的事件中的动作,然后迁移到新的状态,执行新状态中的内部动作(包括entry、exit、do以及用户定义的动作)。 在执行do或用户定义的动作时,可以被外部的事件(将导致该状态的迁移)中断,但entry动作和exit动作是不能被中断的,并且它们总是要执行完的。 转移的类型[1] ① 自身转移: 源状态和目标状态为同一状态的转移。首先当前状态下正在执行的do动作全部停止,然后执行退出动作,接着执行引起转移事件的相关动作,紧接着回到该状态,开始执行该状态的入口动作和其他动作,不会改变对象的状态;调用状态的入口和出口动作。 转移的类型[2] ② 自动转移: 一个 状态根据本状态的有关情况,自动触发进入目标状态,在转移上没有事件。 内部转移(迁移) 状态的内部转移(迁移)是不会引起状态变化的转移(迁移),此转移(迁移)的触发不会导致状态的入口/出口动作的被执行。 状态变化的含义:从一个状态变为另一状态 图形表示 由于内部转移(迁移)不引起状态的转换, 因此它的文字标识(text lable)被附加在表示状态的圆角矩形内部, 不使用箭头进行图形标识 转移条件 状态转移触发表示当一个特定的事件发生或某些条件满足时,一个源状态下的对象将完成一些特定的动作,称为转移条件。 描述状态转态的形式化语法格式如下: 事件[条件]/动作表达式 发送子句 事件:指已发生并可能引发某种活动的一件事; [条件]:由方括号围起的关系或逻辑表达式; 动作表达式:一个触发状态迁移时可执行的过程表达式。 发送子句:动作的一个特例,说明调用的事件名(操作)是哪个对象的。 简单状态转移的表达 简单状态变化指的是同一个对象的两个状态之间的变化。它表示一个对象从一个

文档评论(0)

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

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

1亿VIP精品文档

相关文档