- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 动态建模
系统的动态行为是指对象是如何通过通信来进行协作的,以及系统中的对象是如何在系统的生命周期内改变状态的。
交互(Interaction):为产生某种功能而在一组对象之间进行的通信过程。
描述交互的动态图:
· 状态图(State Diagram):可以描述一个对象在其生命周期中拥有哪些状态,该对象在这些状态下的行为,以及什么样的事件会导致状态发生改变。
· 交互图(Interaction Diagram):可以描述对象之间是如何进行交互和通信的。包括顺序图(Sequence Diagram)、通信(协作)图(Communication Diagram)、交互概观图(Interaction Overview Diagram)以及时序图(Timing Diagram)。其中,顺序图和通信图都可以显示交互。但是顺序图的焦点在时间上, 而通信图的焦点在空间上。交互概观图显示了一些作为一个较大交互流的部分內容的交互图。时序图显示沿着一个精确时间轴的交互。
· 活动图(Activity Diagram):是另外一种显示交互的方法,但是活动图的主要焦点是工作。
4.1 对象之间的交互
两个对象之间的交互是通过一个对象向另一个对象发送消息来实现的。
消息的类型:
· 简单消息:一个平直的控制流。简单消息显示了控制是如何从一个对象传递到另一个对象的,这个过程中并没有描述任何有关对象之间通信的细节信息。
· 同步消息:一个嵌套的控制流,一般是作为操作调用来实现的。只有在处理该消息的操作结束之后,调用者才能恢复继续执行。
· 异步消息:异步的控制流。对象之间的异步消息表明了不等待语义;发送者不必等待该消息处理完就可以继续执行。
图4.1 消息类型注解
4.2 状态图
4.2.1 状态和转换
⒈ 状态和状态转换的概念
一个对象的状态是该对象在此之前所执行的所有活动的结果,通常是由对象的属性值所决定的,并且会链接到其他对象。
有关对象状态的例子:
· 货物(对象)已经付款(状态);
· 小轿车(对象)静止不动(状态);
· 机器的引擎(对象)在运转(状态);
· Jim(对象)担任销售员的角色(状态);
· Kate(对象)结婚了(状态)。
当一个事件发生时,对象就可能会改变状态。
对象的动态行为可以表现在两个方面:交互和内部状态的变化。
⒉ 状态图的组成部分
· 起始点(初态)(Initial State)
· 结束点(终态)(Final State)
· 状态(State)
· 状态转换(State Transition)
· 导致状态发生转换的事件
状态转换激发(Fire)或状态转换被触发(Triggered)
图4.2 货物对象的状态图
图4.3 电梯对象的状态图
⒊ 状态的组成部分
图4.4 状态的三个部分:状态名、状态变量和活动
⒋ 活动组成
在活动组成中可能会使用的三个标准事件:entry, exit和do。
活动组成的形式语法(Formal Syntax)是:
event-name argument-list ‘/’action-expression
图4.5 一个名为login的状态
⒋ 状态转换
图4.6 不带显式事件的状态转换
用于确定一个状态转换的形式语法是:
event-signature ‘[’guard-condition‘]’‘/’ action-expression ‘^’send-clause
其中,event-signature的语法定义为:
event-name‘(’parameter‘,’, ...‘)’
并且send-clause的语法是:
destination-expression‘.’destination-event-name‘(’argument‘,’…‘)’
Event-Signature(事件签名)
event-signature包括一个事件名(event-name)和相关的参数。
参数列表的语法是:
Parameter-name‘:’type-expression, Parameter-name‘:’type-expression …
图4.7 状态转换上所附的事件带有一个参数floor
带event-signature的状态转换的例子如下:
draw (f : Figure , c : Color )
redraw ( )
redraw
print ( invoice )
图4.8 GUI 的状态和状态转换
Guard-Condition(保护条件)
图4.9 guard-condition:[timer = time-out]
带一个guard-condition的状态转换的例子如下:
[ t = 15 sec ]
[ number of i
您可能关注的文档
- 张晓峒-计量经济学概论.ppt
- 张毅刚版 单片机 第1章 单片机概述.ppt
- 漳州市智能会议系统.ppt
- 振动声桥-植入式听力系统患者的选择.ppt
- 正投影与三视图.ppt
- 职业核心能力测评技术2011.ppt
- 职业核心能力介绍.ppt
- 职业核心能力课程体系(河南平顶山).ppt
- 职业核心能力认证案例一.ppt
- 职业核心能力认证解决问题(平顶山交流).ppt
- 历史的巨响 奋进的力量纪念我国第一颗原子弹爆炸成功60周年-热点速递“内容简介+素材集锦+时评+作文链接+范文”.docx
- 历史的巨响 奋进的力量:纪念我国第一颗原子弹爆炸成功60周年-热点速递“内容简介+素材集锦+时评+作文链接+范文”.docx
- 吉林省2016年中考文综试卷(解析版).doc
- 吉林省2016年中考文综试卷(解析版).doc
- 吉林省2016年度中考政 治试题(word版,含答案).doc
- 吉林省2016年中考政治试卷及答案【word版】.doc
- 2016年吉林省中考政治试题及答案解析.doc
- 吉林2016年初中毕业生学业考试.doc
- 竞聘技校数学老师演讲.docx
- 2016年吉林省中考政治试题解析.doc
文档评论(0)