- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章动态建模.doc
实训教学------动态建模
系统的动态行为是指对象是如何通过通信来进行协作的,以及系统中的对象是如何在系统的生命周期内改变状态的。
交互(Interaction):为产生某种功能而在一组对象之间进行的通信过程。
描述交互的动态图:
· 状态图(State Diagram):可以描述一个对象在其生命周期中拥有哪些状态,该对象在这些状态下的行为,以及什么样的事件会导致状态发生改变。
· 顺序图(Sequence Diagram):可以描述对象之间是如何进行交互和通信的。顺序图中的主要焦点是时间。
· 协作图(Collaboration Diagram):也可以描述对象之间是如何进行交互的,但协作图中的主要焦点是空间。
· 活动图(Activity Diagram):是另外一种显示交互的方法,但是活动图的主要焦点是工作。
3.1 对象之间的交互
两个对象之间的交互是通过一个对象向另一个对象发送消息来实现的。
消息的类型:
· 简单消息:一个平直的控制流。简单消息显示了控制是如何从一个对象传递到另一个对象的,这个过程中并没有描述任何有关对象之间通信的细节信息。
· 同步消息:一个嵌套的控制流,一般是作为操作调用来实现的。只有在处理该消息的操作结束之后,调用者才能恢复继续执行。
· 异步消息:异步的控制流。对象之间的异步消息表明了不等待语义;发送者不必等待该消息处理完就可以继续执行。
图3.1 消息类型注解
3.2 状态图
3.2.1 状态和转换
⒈ 状态和状态转换的概念
一个对象的状态是该对象在此之前所执行的所有活动的结果,通常是由对象的属性值所决定的,并且会链接到其他对象。
有关对象状态的例子:
· 货物(对象)已经付款(状态);
· 小轿车(对象)静止不动(状态);
· 机器的引擎(对象)在运转(状态);
· Jim(对象)担任销售员的角色(状态);
· Kate(对象)结婚了(状态)。
当一个事件发生时,对象就可能会改变状态。
对象的动态行为可以表现在两个方面:交互和内部状态的变化。
⒉ 状态图的组成部分
· 起始点(初态)(Initial State)
· 结束点(终态)(Final State)
· 状态(State)
· 状态转换(State Transition)
· 导致状态发生转换的事件
状态转换激发(Fire)或状态转换被触发(Triggered)
图3.2 货物对象的状态图
图3.3 电梯对象的状态图
⒊ 状态的组成部分
图3.4 状态的三个部分:状态名、状态变量和活动
⒋ 活动组成
在活动组成中可能会使用的三个标准事件:entry, exit和do。
活动组成的形式语法(Formal Syntax)是:
event-name argument-list ‘/’action-expression
图3.5 一个名为login的状态
⒋ 状态转换
图3.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 …
图3.7 状态转换上所附的事件带有一个参数floor
带event-signature的状态转换的例子如下:
draw (f : Figure , c : Color )
redraw ( )
redraw
print ( invoice )
图3.8 GUI 的状态和状态转换
Guard-Condition(保护条件)
图3.9 guard-condition:[timer = time-out]
带一个guard-condi
文档评论(0)