软件工程培训讲义(上).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文档。上传文档
查看更多
软件工程培训讲义(上)

3 状态图 状态图用于描述模型元素(如对象)的行为。特别是,用它描述元素之状态的可能序列和动作的可能序列。因对特定事件(如信号和操作调用)的响应,元素在其生命期中要经历这样的状态,并执行相应的动作。 1 ) 状态图 (1) 语义 通过描述对事件实例接收的响应,状态图描述了具有动态行为能力的实体之行为。 通常用状态图描述类的行为,也可以用它描述其它模型实体(如用况、参与者、子系统、操作或方法)的行为。 (2) 表示法 状态图是表示状态机的图。用适当的状态表示状态机图中的状态;一般地,用连接状态的有向弧表示转换。 (3) 实例 简单的电话状态的转换 其中: 状态 转换 Ringing 事件 状态 (1) 语义 一个状态是对象在其生命期内的一个条件,或在对象满足某个条件、进行某个动作或等待某个事件的期间内的一个交互。在概念上,对象要在一个状态内维持一段时间。 在这一语义下,可以对瞬时状态建模,以及对非瞬时的交互建模。 (2) 表示法 把一个状态表示成一个四角均为圆角的矩形。 根据需要,可以把状态划分成由水平线相互分隔的多个分栏: ???? ?名称分栏 给出状态名。在同一张状态图里不应该出现具有相同名称的状态。 如果没有状态名称,那么该状态就是匿名的。同一张图中的匿名状态是各不相同的。 ?????? ?内部转换分栏 给出在这个状态中对象所执行的内部动作或活动的列表 其一般格式为: 动作标号’/’ 动作表达式 其中:动作标号标识在该环境下要调用由动作表达式指定的动作。 动作表达式可以使用对象范围内的任何属性和链。若动作表达式为空,则可省略斜线分隔符。 下面给出专用的动作标号(注:它们不能用作事件名): ???????? entry 该标号标识在进入状态时,执行由相应的动作表达式规定的动作(进入动作)。 ????????? exit 该标号标识在退出状态时,执行由相应的动作表达式规定的动作(退出动作)。 ?????????? do 该标号标识正在进行的活动(“do 活动”)(只要被建模的元素是在状态中,没有完成由动作表达式指定的计算,就执行这个活动;当动作表达式指定的计算完成时,可能产生一个完成事件)。 3) 事件 (1) 语义 事件是值得注意的所发生的事情。按照状态图的具体用意,事件是指可以引发状态转换的所发生的事情。 事件可以分为: a)条件(用布尔表达式描述)变为真。不论何时,只要条件变为真,事件都发生。(注意:这不同于监护条件。无论什么时候激发具有监护条件的事件,都对监护条件进行求值。如果求值的结果为假,转换就不发生,并且事件丢失。) b)一个对象对另一个对象的显式信号的接收,导致一个信号事件。把这样的事件的特征标记放由它所触发的转换上。 c)对操作的调用的接收,导致一个调用事件。 d)在指定事件(经常是当前状态的入口)后,经过了一定的时间或到了指定日期/时间,导致一个时间事件。 (2) 表示法 ?可以按如下的格式定义信号事件或调用事件: 事件名 ‘(‘用逗号分隔的参数列表‘)’ 参数的格式如下: 参数名 ‘:’ 类型表达式 在类图中,在类符号上用关键字signal声明信号。把该关键字放在信号名的上面,把参数说明为信号的属性。注意,信号是实例之间异步传送的消息的规格说明。 ?可以用关键词“after”和计算时间量的表达式表示时间事件,比如“after (5 秒)”或者”after (从状态A退出后经历了10秒)”。如果没指明时间起始点,那么从进入当前状态开始计时。可把其它的时间事件指定为条件,比如“when (date= 2000年1月1日)”。 ?用关键词“when”和布尔表达式表示变为真的事件。可以把其看作是连续测试条件,直到它为真。 4) 转换 (1) 语义 转换是两个状态之间的关系,表示当一个特定事件出现时,如果满足一定的条件,对象就从第一个状态进入第二个状态,并执行一定的动作。 --对于这样的状态的改变,称为“触发”转换。 转换的触发器就是标注在转换上的事件。事件可能有参数,这样的参数可由转换指定的动作访问,也可由与源和目标相联系的退出和进入动作分别访问。 在状态图中,每次处理一个事件。如果事件没有触发任何转换,就丢弃它。 如果在同一个简单状态图中触发了多个转换,就只对优先级最高的那个转换点火。如果这些相冲突的转换具有相同的优先级,就随机地选择一个转换,进行触发。 (2) 表示法 把转换表示成从源状态出发并在目标状

文档评论(0)

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

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

1亿VIP精品文档

相关文档