行为模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一般一个同步消息必有一个配对的返回消息。 同步消息的接收者必须是一个被动对象。
同步消息的表示:
客户端与服务器联系后 ,即等待应答。 应答信息对客户端是较 重要的。 客户端可以确定服务器 确实处理了它的请求。
Web客户端
Web服务器
请求一个页面
同步消息的例子
同步方式的时间问题 。
如果供应商(计算价 格)和销售商(存储价 格)都需要1秒钟来处 理消息(不考虑网络 连接通讯时间),至 少需要4秒。
时序图中大量的消息是异步消息。 异步消息的接收者必须是一个主动对象。 异步消息的表示:
异步消息的例子(1/2)
异步方式的时间问题 。 因为供应商不需要等 待销售商(存储价格) 的处理所以节省了2 秒钟时间。
供应商
计算新商 品1的价格
销售商
发送新商品1的价格
计算新商 品2的价格 发送新商品2的价格
放入处 理队列 或直接 处理
对象的动态合作关系? 对象在生命周期内状态的变化? 对象的操作的执行过程?
根据用例模型建立行为模型
用例模型
行为模型
交互图行为图Fra bibliotek时序图协作图
状态图
活动图
2、交互图
定义:对象之间的合作(协作)在UML里被称 作交互。交互是为了达到某一目的而在一 组对象之间进行消息传递的行为。
作用:交互是用于对软件系统为实现某一 功能而必须在一组对象之间必须实施的动 态行为进行建模。
激活
激活表示该对象被占用以完成某个任务, 去激活指的则是对象处于空隙状态、在等 待消息。 在时序图中,为了表示对象是激活的,将 对象的生命线拓宽成为矩形,称为激活条 。对象在激活条的顶部被激活,处于激活 状态;对象在完成自己的工作后被去激活 对象1 对象2 。
需求分析阶段建立的时序图,对于设计而言,
供应商
计算新商 品1的价格 发送新商品1的价格 对新商品1价格 更新的应答 计算新商 品2的价格 发送新商品2的价格 对新商品2价格 更新的应答 对新商 品2的价 格更新
销售商
对新商 品1的价 格更新
异步消息
表示异步控制流或并发。 当调用者发出消息后不用等待消息的返回即可继 续执行自己的操作。
异步消息的发送者和接收者是并发工作的。
时序图 协作图 动态合作关系建模
时序图 (Sequence Diagram)
• 用来描述对象之间发送消息 的时间顺序,即显示多个对 象之间的动态交互关系
协作图 (Collaboration Diagram)
• 用来描述对象间的交互关系
2.1 时序图
时序图的本质就是将系统中对象之间的交 互建模成消息传递。 特点:时序图强调消息发送的时间先后顺 序,即对象间消息的发送和接受的顺序。 时序图用来表示用例中的行为顺序,揭示 了一个特定场景的交互,即系统执行期间 发生在某个时间点的对象之间的特定交互 ,即描述了如何一步步实现系统的某项功 能。
1: 插卡 22: 出卡
: 显示 器
: 收据
: 用户
7: 输入密码 4: 卡号合法
3: 验证卡号
13: 取款(1000RMB)
15: 验证取款是否合法 16: 帐户扣款
8: 验证密码 : 键盘 9: 密码合法 : 银行信息 系统
17: 出款数
: 出钞 口
时序图的组成元素
时序图包含四个元素:
1)对象(Object) 2)生命线(Lifeline)
行为模型
软件学院 代飞 2013·秋
内容
1、建立行为模型的背景及主要 内容 2、交互图(时序图和协作图)
3、行为图(状态图和活动图)
1、背景
用例视图--需求捕获
领域模型--系统的静态分析
行为模型--系统的动态分析
为什么要建立行为模型?
用例模型中的对系统的功能(用例)进行 了描述,其关注的重点是:从用户的角度 ,系统能提供什么。 领域模型中,确定了构成系统的概念类、 类间的关联以及类的重要属性,其关注的 重点是:系统的静态结构。
有什么用??
赤壁之战的时序图
Public class 刘备 { public void 应战(); }
Public class 孔明 { public void 拟定策略(); public void 联合孙权(); private void 借东风火攻(); }
Public class 关羽 { Public void 防守荊州(); }
Public class 张飞 { public void 防守荆州前线(); }
Public class 孙权 { public void 领兵相助(); }
3、行为图
定义:用来建模对象在生命周期内状态的 变化以及对象操作的执行过程 状态图着重从一个状态到另一个状态的流 程,主要有外部事件的参与。 活动图着重表现从一个活动到另一个活动 的控制流程,是内部处理驱动的流程。
15: 验证取款是否合法
16: 帐户扣款 17: 出款数
18: 提示用户取钱
19: 提示用户打印收据 20: 用户选择打印收据 21: 打印收据
22: 出卡
2: 读卡号 11: 选取事务(取款) 14: 输入金额(1000RMB) 20: 用户选择打印收据5: 屏幕初始化 : 读卡 器 6: 提示输入密码 10: 提示选择事务 12: 提示取款金额 18: 提示用户取钱 19: 提示用户打印收据 21: 打印收据
取款
8、用户取出银行卡或信用卡。
读卡器 出钞口 显示器 钥匙开关
储蓄卡
日志
查询 取款 存款
ATM机
交易
银行信息系统
键盘
打印机
转账
收据
: 读卡器 : 用户 1: 插卡 2: 读卡号
: 键盘
: 显示器
: 出钞口
: 收据
: 银行信息 系统
3: 验证卡号 4: 卡号合法 5: 屏幕初始化 6: 提示输入密码 7: 输入密码 8: 验证密码 9: 密码合法 10: 提示选择事务 11: 选取事务(取款) 12: 提示取款金额 13: 取款(1000RMB) 14: 输入金额(1000RMB)
3)消息(Message)
4)激活(Activation)
对象
对象(通常是对象、类或参与者)
:Class O:Class
表示法一
表示法二
生命线
生命线是一条垂直的虚线,从时序图的顶 部一直延伸到底部,所有的时间取决于交 互持续的时间。每个对象的底部中心的位 置都带有生命线。
对象1 对象2
消息
ATM系统的用例图
查询
取款
存款 用户 转帐
取款用例的描述
1、用户将银行卡或信用卡插入ATM读卡机;
2、ATM系统从卡上读取银行帐号,并验证帐号;
3、用户输入密码,系统检验密码; 4、用户按确认键,进入菜单界面; 5、用户选择取款,输入取款金额; 6、ATM把帐号和取款金额传递给银行系统,取回帐户 余额; 7、ATM输出现金,并显示帐户余额;
状态图 行为建模 活动图
状态图 (State
Diagram) 活动图 (Activity Diagram)
• 通过对对象的生命周期建立模型来 描述对象随时间变化的状态行为
• 用于对计算流程和工作流程建模
3.1 状态图
放入处 理队列 或直接 处理
异步消息的例子(2/2)
在许多情况下客户 端与服务器联系后 ,并不需要等待应 答或不需要立即应 答。 客户建立异步联系 后(只需建立对异 步回答的监听)可 以做自已另外的事 情。
五官科患者
挂眼科号 需要等待 挂牙科号 牙科叫号 看牙科 眼科叫号 看眼科 需要等待
眼科
牙科
对象1 对象2
简单消息
异步消息
同步消息
发消息 给自己
返回消息
简单消息
表示简单的控制流。用于描述控制如何在 对象间进行传递,而不考虑通信的细节。
简单消息的表示:
同步消息
调用者发出消息后必须等待消息返回(暂停活动 ),只有消息接收者处理消息的操作执行完毕 (或 放弃)后返回控制,调用者才可以继续执行自己的 操作。
消息是两个对象之间的单路通信,从发送 方到接受方的控制信息流。
消息可以用于在对象间传递参数。 消息可以是信号,也可以是调用。
消息类型
对象可以发消息给自己 简单消息从一个对象到另 一个对象的控制流的转移 同步消息需要等待对方对 消息的回答后才能继续自 已的操作 异步消息不需要等待对方 对消息的回答便可以继续 自已的操作 返回消息表示从同步消息 创建的激活返回到调用者 激活