当前位置:文档之家› 软件工程---交互建模之交互图,顺序图与协作图

软件工程---交互建模之交互图,顺序图与协作图


2.5 消息
格式
[前缀][守卫条件][顺序表达式][返回值:=]消息名([参数列表])
例:
2: display ()
简单消息
1.3.1: p:=find()
带返回值的嵌套消息
[x<0] 4: invert(x, color) 条件消息
3.1 *[x = 1..10] : update() 循环消息
[ 条件子句 ] 条件子句一般用来表示分枝而不是用作守卫条件[x<0]是两个可
以用来分枝的条件子句这两个条件只能有一个为真因而只有一 个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言来表示 序列表达式用冒号结束
返回值、消息名和参数表
返回值表示一个操作调用(即一个消息)的结 果
顺序图中消息编号可显示,也可不显示。 协作图中必须显示Procedure Call) 异步(Asynchronous) 返回(Return) 自关联消息(Self Message)
2.5 消息
UML三种消息:
调用(Procedure Call) 发送者把消息发送后,等待直到接收者返回控制, 可以表示同步(synchronous message); 实心箭头符号
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
2.3 生命线
生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
对象间消息的结构化视图
打电话
小张
电话
小王
顺 序 图 举 例
拿起电话 提示正常音
按小王的电话号码 提示接通音 交谈 挂断电话
忙音
挂断电话
对象交互的代码呈现
2 顺序图
按照时间顺序显式对象之间交互的图
2.1 顺序图的组成
2.1 顺序图的组成
活动者(actor)或者 对象(object) 生命线(lifeline) 激活(activation)/ 控制焦点(focus of
到配置上。
1 交互图概述
Interaction diagram,是描述对象之间的 关系和对象之间的信息传递的图;
通常用来描述一个用例的行为,实现一个 用例,完成对系统的动态行为建模;
包含两种:
顺序图(或时序图,sequence diagram) 协作图(collaboration diagram)
validator
userDao
loop [count<=3 and valid==false]
input
submit
validate(account,password)
validate(account,password)
display()
return valid
return valid
findUser(account,password)
例如,[x<0] 4: invert(x, color)
序列表达式 (sequence-expression)
语法 [integer | name] [recurrence] :
integer为指定消息顺序的序列号,消息1是消息序列的 开始消息消息,1.1是消息1的处理过程中的第一条嵌套 的消息,消息1.2是消息1的处理过程中的第二条嵌套的 消息,一个消息序列的例子如1, 1.1, 1.2, 1.2.1, 1.2.2, 1.3, 等。这样的序列号不仅能够表示消息的顺序而且还 能表示消息的嵌套关系(当消息是异步消息时消息为嵌套 的操作调用及返回)
a3,b4/c2: copy(a,b)
线程同步
1.1a, 1.1b/1.2: continue() 带前缀消息
在发送线程c的第2个消 息之前,必须先发送线 程a的第3个消息和线程b 的第在4发个送消消息息1.2之前必须
已经同时发送并发消息给 线程a和b
前缀(predecessor)
语法:消息序列号,消息序列号, ... / 前缀是一个用来同步线程或路径(path)的表达式
control) 消息(message)
2.2 活动者或对象
活动者和对象按照从左到右的顺序排列 一般最多两个活动者,他们分列两端。启动
这个用例的活动者往往排在最左边;接收消 息的活动者则排在最右端; 对象从左到右按照重要性排列或按照消息先 后顺序排列。
2.2 活动者或对象
对象的命名方式有三种:
时序图
时序图实例分析
绘制图书管理系统“借书”用例的时序图(业务模 型)。 图书管理员打开借书界面,输入借书信息并提交 借书请求;系统验证借书卡状态,如果借书卡未 借书则记录借书信息且修改图书状态和借书卡状 态,并提示借书成功;否则提示借书失败。
借书
时序图
时序图实例分析
图书管理员
借书界面
打开借书界面
时序图
时序图绘制技巧
需求分析阶段的时序图
登录
登录界面
业务逻辑对象
数据访问对象
用户 打开界面
loop [count<=3 and valid==false] 输入数据
提交请求
验证
验证
返回结果
返回结果
返回结果
查询用户信息
时序图
时序图绘制技巧
系统设计阶段的时序图
Login
User
loginForm
2.4 激活期
激活期(activation)/控制焦点(focus of control)
对象在一段时间内获得了焦点,也称激活期 对象执行某个动作的时期 空心矩形条 激活期的长短意味着 对象执行某个动作的 时间有多长,可以 通过约束{10ms}来 限制执行时间的长短。
2.4 激活期
2.5 消息
同步消息的发送者把控制传递给消息的接收者,然后暂停活动 ,等待消息接收者的应答,收到应答后才继续自己的操作。
2.5 消息
UML三种消息:
异步(Asynchronous) 消息发送后,发送者继续操作,不等待,常用于并 发;
异步消息(Asynchronous message)用于控制流在完 成前不需要中断的情况。同步消息的发送者把控制传递给 消息的接收者,然后继续自己的活动,不需等待接收者返 回信息或控制
2.8 案例:存款
分析级别的顺序图,粗略, 双斜杠
忽略消息同步异步类别也 无妨
Add title 新增书目和图书操作
2.9 练习
用户打印文件,计算机向打印服务器发送 打印命令,打印机如果空闲,则直接打印, 否则把打印文件存储在打印队列中。
2.9 练习
管理员通过课程管理器打印课程UML的信息
面向对象方法中,消息是对象间交互信息的主 要方式。
结构化程序设计中,模块间传递信息的方式主 要是过程(或函数)调用。
对象A向对象B发送消息,可以简单地理解为 对象A调用对象B的一个操作(operation)。
2.5 消息
顺序图中,尽力保持消息的顺序是从左到 右排列的。
一个顺序图的消息流开始于左上方,消息2 的位置比消息1低,这意味着消息2的顺序 比消息1要迟。
意思是在发送当前消息之前指定序列号的消息被处理 (必须连续执行)
消息序列号之间用逗号隔开,用斜杠结束
例如 1.1a, 1.1b/1.2: continue() ,在发送消息1.2之前 必须已经同时发送并发消息给线程a和b
守卫条件(guard-condition)
语法: [ 条件短语 ]
条件短语通常用伪代码或真正的程序语言来表示, UML并不规定其语法
ATM登录
ATM用户 插卡
提示输入密码 loop [Password Wrong]
输入密码
返回验证结果
ATM
Bank
验证密码 返回验证结果
验证
顺序图
时序图绘制技巧
以用例为单位创建时序图,针对每个用例,考察为完成 它所描述的功能需要哪些对象的操作参与执行,并且进 一步考察这些操作的执行需要通过消息而引起其他哪些 对象操作的执行。把这些对象以及参与交互的执行者组 织到一个时序图中。
理论上需要为每一个用例创建一个时序图,但是如果一 个用例的交互对象很简单可以不需要创建时序图。
时序图
时序图绘制技巧 时序图绘制步骤: 确定参与交互的执行者 确定与执行者直接交互的对象 确定与交互相关的全部对象(顺藤摸瓜)
时序图
时序图绘制技巧
如果需要考察单个用例内部多个对象的行为就应该使用 时序图;
交互建模之交互图 顺序图与协作图
用例图(功能模型): 从用户的角度描述系统能提供哪些功能。 • 结构模型视图(静态):
类图:描述系统的静态结构; 对 象图:描述系统在某个时刻的静态结构; 包图:将类分组成更高层次的静态结构。 • 行为模型视图(动态) 顺序图:按时间顺序描述系统元素之间的交互; 协作图:从时间和空间的顺序描述系统元素之间的交互; 状态图:描述系统元素对事件的响应引起的状态转换; 活动图:描述系统元素的活动。 • 实现模型视图 构件图:描述实现系统的元素的组织结构; 配置图:描述环境元素的配置,并把实现系统的元素映射
顺序图制作提示: 只关注核心对象 顺序图用于描述某个用例的部分交互细节
3.3 案例:存款
2.5 消息
UML三种消息:
返回(Return) 表示消息的返回。消息上方放置返回值 同步消息的返回可以画出(如果想明确表达返回 值),也可以不画出,直接隐含。 异步消息可以有返回,也可以没有。(可以响应异 步消息,也可以不响应该异步消息。) 如果顺序图上显示有编号,则返回消息的编号和当 初发送消息的编号完全一样。 虚线箭头表示,和依赖关系不要混淆
相关主题