当前位置:文档之家› 顺序图和协作图

顺序图和协作图


协作图
消息(Message)



协作图中的消息类型与顺序图中的相同,只不 过为了说明交互过程中消息的时间顺序,需要 给消息添加顺序号。 顺序号是消息的一个数字前缀,是一个整数, 由1开始递增,每个消息都必须由唯一的顺序 号。可以通过点表示法代表控制的嵌套关系。 嵌套可以具有任意深度。与顺序图相比,协作 图可以显示更为复杂的分支。
顺序图
概念
顺序图
顺序图包含了4个元素:


对象(Object) 生命线(Lifeline) 消息(Message) 激活(Activation)
顺序图
对象(Object)


顺序图中对象的符号和对象图中对象所用的符 号一样。 将对象置于顺序图的顶部意味着在交互开始的 时候对象就已经存在了,如果对象的位置不在 顶部,那么表示对象是在交互的过程中被创建 的。

系统管理员添加书籍的顺序图
: Administrator
: Maintenance Window 1: add item( ) 2: find(String)
: Title
: Item
Check if corresponding title exist
3: return true
4: create(Integer, Title)
2: find(String)
1: identify borrower( ) 3: reserve title( ) : Borrower : Reservation Window
teacher
Req stu info Get stu data Load stu Return stu info Load grades
failure
mBox <<create>> Disp error <<destorys>>
No grades found for stu
顺序图
范例2
顺序图
范例3
协作图
协作图建模技术



设置交互的语境。 通过识别对象在交互中扮演的角色,设置交互的场景。 对每个对象设置初始特性。 描述对象之间可能有信息沿着它传递的链。 从引起交互的消息开始,适当地设置其顺序号,然后 将随后的每个消息附到适当的链上。 如果需要说明时间或空间约束,可以用时间标记修饰 这个消息,并附上合适的时间和空间约束。 如果需要更形式化地说明这个控制流,可以为每个消 息附上前置和后置条件。
3: Return true
4: reserv e( )
顺序图
范例4

分析Select Course用例中的对象、角色之间 交互的消息。主要有以下交互:
(1)学生通过界面发送选课命令。 (2)界面向控制对象请求课程信息。 (3)控制对象向数据库发送查询数据消息。 (4)控制对象暂存数据库的查询结果。 (5)界面对象从控制对象中取得所有的课程信息。 (6)在界面上显示所有的课程信息。
协作图包含了3个元素:

对象(Object) 链(Link) 消息(Message)
协作图
对象(Object)

协作图与顺序图中的对象的概念是一样,只不 过在协作图中,无法表示对象的创建和撤销, 所以对于对象在图中的位置没有限制。
协作图
链(Link)


协作图中链的符号和对象图中链所用的符号是 一样的,即一条连接两个类角色的实线。 为了说明一个对象如何与另一个对象连接,可 以在链的末路上附上一个路径构造型。
多对象 :表示某个关联角色的“多个”端点 上的一组对象角色。协作中使用多对象来 显示将整个对象集合作为一个单元(而不 是其中的单个对象)来处理的操作。
协作图
关联角色 :是一种协作角色,用来说明协作 图中两个分类器角色之间的关系。它由两 个类角色元素之间的路径表示,并且可以 包括带下划线的相应关联的名称。在协作 图上下文中,关联角色通常指链接。
顺序图
消息(Message)
顺序图
激活(Activation)


激活表示该对象被占用以完成某个任务,去激 活指的则是对象处于空闲状态、在等待消息。 在UML中,为了表示对象是激活的,可以将该 对象的生命线拓宽成为矩形。其中的矩形称为 激活条或控制期,对象就是在激活条的顶部被 激活的,对象在完成自己的工作后被去激活。
顺序图
生命线(Lifeline)



生命线是一条垂直的虚线,表示顺序图中的对 象在一段时间内的存在。每个对象的底部中心 的位置都带有生命线。 生命线是一个时间线,从顺序图的顶部一直延 伸到底部,所用的时间取决于交互持续的时间。 对象与生命线结合在一起称为对象的生命线, 对象的生命线包含矩形的对象图标以及图标下 面的生命线。
Get stu data
Load stu Return stu info Load grades Return grades
Disp stu info
Return stu info
顺序图
范例1

添加消息和条件(流程2)
Web interface Database wrapper Stu info Stu grades
: Reservation
: Loan
协作图
范例1

图书管理员处理还书的协作图
1: find borrower( ) : Return Window : Librarian 3: return_back( ) : Title
5: return_back( )
2: find(S序图和协作图
内容提要
顺序图 协作图
交互的概念
一次交互就是指在特定语境中,为了实现 某一个目标,而在一组对象之间进行交换 的一组消息所表示的行为
如何创建交互图
用例图仅仅描述了系统的功能,以及功能的执行 流程。它并没有从实现的层面来描述系统。 而要对用例进行实现描述,则需要描述相互影响 的对象的集合,这些对象用来支持用例所要求的 功能。 并且,给出系统用例的实现描述,是从外部视图 转到内部结构的第一步。 在UML中,用例的实现用交互图来描述,它通过 显示对象之间的关系和对象之间处理的消息来对 系统的动态特性建模。 交互图包括序列图和协作图两种。
顺序图
范例1

布置对象
Web interface
teacher
Database wrapper
Stu info
Stu grades
顺序图
范例1

添加消息和条件(流程1)
Database wrapper
Web interface
teacher Req stu info
Stu info
Stu grades
如何创建交互图
交互图用来一步一步地描述用例地实现流 程,包括流中需要什么对象,对象之间发 送什么,什么角色启动流、消息按什么顺 序发送等。 交互图通过从用例建模中得到的用例文档 说明、词汇表和用例图来创建。
顺序图
概念


顺序图是强调消息时间顺序的交互图。 顺序图描述了对象之间传送消息的时间顺序, 用来表示用例中的行为顺序。 顺序图将交互关系表示为一个二维图。其中, 纵轴是时间轴,时间沿竖线向下延伸。横轴代 表了在协作中各独立的对象。
: Title
协作图
范例1

图书管理员处理借书的协作图
: Item 2: find reservation( ) 5: update( ) 1: identify borrower( ) : Lend Window : Administrator 6: borrow( ) 7: check_if_max( ) 3: find(Borrower, Title) 4: borrow( ) : Title
: Loan
: Item
协作图
范例1

系统管理员删除书籍的协作图
1: remove item( ) : Maintenance Window : Administrator 2: find(String) 3: update( ) : Item
: Title
协作图
范例1

借阅者预留书籍的协作图
: Title
协作图
绘制协作图的步骤



创建协作图 协作图工具栏按钮简介 添加对象 添加消息 添加数据流
协作图
范例1

系统管理员添加书籍的协作图
1: add item( ) : Maintenance Window 3: update( ) : Item
: Administrator 2: find(String)
顺序图
对象的创建和撤销



如果对象位于顺序图的顶部,说明在交互开始 之前该对象已经存在了。如果对象是在交互的 过程中创建的,那么它应当位于图的中间部分。 对象在创建消息发生之后才能存在,对象的生 命线也是在创建消息之后才存在的。 创建对象的两种表示方法:
顺序图
对象的创建和撤销

如果要撤销一个对象,只要在其生命线终止点 放置一个“X”符号即可,该点通常是对删除或 取消消息的回应。
顺序图
范例3

图书管理员处理借书的顺序图 (不包括预留书籍的情况)
顺序图
范例3

系统管理员删除书目的顺序图
顺序图
范例3

借阅者预留书籍的顺序图
W eb Application theTitle : Title
theBorrower : Borrower 1: Login
2: find(String)
顺序图
顺序图建模技术
相关主题