第6章顺序图和协作图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3: find(Borrower, Title)
: Reservation
: Loan
协作图
范例1
图书管理员处理还书的协作图
1: find borrower( )
: Return Window
3: return_back( )
: Librarian
5: return_back( ) 2: find(String)
: Reservation
协作图
范例2
交互图通过从用例建模中得到的用例文档 说明、词汇表和用例图来创建。
顺序图
概念
顺序图是强调消息时间顺序的交互图。
顺序图描述了对象之间传送消息的时间顺序, 用来表示用例中的行为顺序。
顺序图将交互关系表示为一个二维图。其中, 纵轴是时间轴,时间沿竖线向下延伸。横轴代 表了在协作中各独立的对象。
顺序图
概念
顺序图
顺序图包含了4个元素:
对象(Object) 生命线(Lifeline) 消息(Message) 激活(Activation)
顺序图
对象(Object)
顺序图中对象的符号和对象图中对象所用的符 号一样。
将对象置于顺序图的顶部意味着在交互开始的 时候对象就已经存在了,如果对象的位置不在 顶部,那么表示对象是在交互的过程中被创建 的。
并且,给出系统用例的实现描述,是从外部视图 转到内部结构的第一步。
在UML中,用例的实现用交互图来描述,它通过 显示对象之间的关系和对象之间处理的消息来对 系统的动态特性建模。
交互图包括序列图和协作图两种。
如何创建交互图
交互图用来一步一步地描述用例地实现流 程,包括流中需要什么对象,对象之间发 送什么,什么角色启动流、消息按什么顺 序发送等。
顺序图
消息(Message)
消息定义的是对象之间某种形式的通信,它可 以激发某个操作、唤起信号或导致目标对象的 创建或撤销。
消息是两个对象之间的单路通信,从发送方到 接收方的控制信息流。
消息可以用于在对象间传递参数。
消息可以是信号,也可以是调用。
在UML中,消息使用箭头来表示,箭头的类型 表示了消息的类型。
嵌套可以具有任意深度。与顺序图相比,协作 图可以显示更为复杂的分支。
协作图
分类器角色:
是一种协作角色,是协作图中用于某个对象的 槽。它由仅显示名称空间的类矩形符号表示。 名称空间包含以下字符串:
类角色名称: 分类器名称 必要时,还可以包括封闭包的完整路径,还 可以显示类的构造型、创建/破坏标记和多重 性指示器。在协作图上下文中,分类器角色通 常指对象。
顺序图
生命线(Lifeline)
生命线是一条垂直的虚线,表示顺序图中的对 象在一段时间内的存在。每个对象的底部中心 的位置都带有生命线。
生命线是一个时间线,从顺序图的顶部一直延 伸到底部,所用的时间取决于交互持续的时间。
对象与生命线结合在一起称为对象的生命线, 对象的生命线包含矩形的对象图标以及图标下 面的生命线。
: Loan
: Title 4: update( )
: Item
协作图
范例1
系统管理员删除书籍的协作图
1: remove item( ) : Administrator
: Maintenance Window
3: update( )
2: find(String)
: Item
: Title
协作图
顺序图
消息(Message)
顺序图
激活(Activation)
激活表示该对象被占用以完成某个任务,去激 活指的则是对象处于空闲状态、在等待消息。
在UML中,为了表示对象是激活的,可以将该 对象的生命线拓宽成为矩形。其中的矩形称为 激活条或控制期,对象就是在激活条的顶部被 激活的,对象在完成自己的工作后被去激活。
对象(Object) 链(Link) 消息(Message)
协作图
对象(Object)
协作图与顺序图中的对象的概念是一样,只不 过在协作图中,无法表示对象的创建和撤销, 所以对于对象在图中的位置没有限制。
协作图
链(Link)
协作图中链的符号和对象图中链所用的符号是 一样的,即一条连接两个类角色的实线。
内容提要
顺序图 协作图
交互的概念
一次交互就是指在特定语境中,为了实现 某一个目标,而在一组对象之间进行交换 的一组消息所表示的行为
如何创建交互图
用例图仅仅描述了系统的功能,以及功能的执行 流程。它并没有从实现的层面来描述系统。
而要对用例进行实现描述,则需要描述相互影响 的对象的集合,这些对象用来支持用例所要求的 功能。
Stu info
Stu grades
teacher Req stu info
Get stu data
Load stu
Return stu info
Load grades
failure
No grades found for stu
mBox
<<create>> Disp error <<destorys>>
: Item
: Title
协作图
范例1
图书管理员处理借书的协作图
: Item
2: find reservation( )
5: update( )
1: identify borrower( )
: Lend Window
4: borrow( )
: Title
: Administrator
6: borrow( ) 7: check_if_max( )
为了说明一个对象如何与另一个对象连接,可 以在链的末路上附上一个路径构造型。
协作图
消息(Message)
协作图中的消息类型与顺序图中的相同,只不 过为了说明交互过程中消息的时间顺序,需要 给消息添加顺序号。
顺序号是消息的一个数字前缀,是一个整数, 由1开始递增,每个消息都必须由唯一的顺序 号。可以通过点表示法代表控制的嵌套关系。
协作图
协作图建模技术
设置交互的语境。 通过识别对象在交互中扮演的角色,设置交互的场景。 对每个对象设置初始特性。 描述对象之间可能有信息沿着它传递的链。 从引起交互的消息开始,适当地设置其顺序号,然后
将随后的每个消息附到适当的链上。 如果需要说明时间或空间约束,可以用时间标记修饰
这个消息,并附上合适的时间和空间约束。 如果需要更形式化地说明这个控制流,可以为每个消
协来自百度文库图
多对象 :表示某个关联角色的“多个”端点 上的一组对象角色。协作中使用多对象来 显示将整个对象集合作为一个单元(而不 是其中的单个对象)来处理的操作。
协作图
关联角色 :是一种协作角色,用来说明协作 图中两个分类器角色之间的关系。它由两 个类角色元素之间的路径表示,并且可以 包括带下划线的相应关联的名称。在协作 图上下文中,关联角色通常指链接。
顺序图
范例4
分析Select Course用例中的对象、角色之间 交互的消息。主要有以下交互:
(7)界面对象发送命令要求控制对象删除课程信息。 (8)学生选择课程。 (9)界面对象要求学生输入学号。 (10)界面对象向控制对象发送信息,查询该生是 否可以选择选定的课程。
(11)控制对象从数据库中查询关联信息。 (12)控制对象判断是否可以选课。 (13)如果可以选课,则向数据库中添加关联信息。 (14)向界面对象返回信息。
顺序图
范例4
协作图
概念
协作图描述的是和对象结构相关的信息。 协作图的用途是表示一个类操作的实现。
协作图对交互中有意义的对象和对象之间的链 建模。
在UML中,协作图用几何排列来表示交互作用 中的对象和链,附在链的箭头代表消息,消息 的发生顺序用消息箭头处的编号来说明。
协作图
概念
协作图
协作图包含了3个元素:
顺序图
顺序图建模技术
确定需要建模的工作流 从左到右布置对象 添加消息和条件以便创建每一个工作流 绘制总图以便连接各个分图
顺序图
范例1
teacher administrator
Report cards
Record grades 《include》
Save grades
《include》
Update grades
范例1
借阅者预留书籍的协作图
: Title
2: find(String)
1: identify borrower( ) 3: reserve title( )
: Borrower
: Reservation Window
4: reserve( )
: Item
5: create(Title, Borrower)
3: Return true 4: reserve( )
顺序图
范例4
分析Select Course用例中的对象、角色之间 交互的消息。主要有以下交互:
(1)学生通过界面发送选课命令。 (2)界面向控制对象请求课程信息。 (3)控制对象向数据库发送查询数据消息。 (4)控制对象暂存数据库的查询结果。 (5)界面对象从控制对象中取得所有的课程信息。 (6)在界面上显示所有的课程信息。
协作图
顺序图与协作图的互换
顺序图与协作图都表示对象之间的交互作用, 只是它们的侧重点有所不同:
顺序图描述了交互过程中的时间顺序,但没有明确 地表达对象之间的关系。
协作图描述了对象之间的关系,但时间顺序必须从 顺序号获得。
两种图的语义是等价的,可以从一种形式的图 转换成另一种形式的图,而不丢失任何信息。
Get stu data
Disp stu info
Return stu info
Load stu Return stu info
Return grades
Load grades
顺序图
范例1
添加消息和条件(流程2)
teacher
Web interface Database wrapper
Stu info
Req stu info
Get stu data
failure
Load stu Stu not found
mBox
<<create>> Disp error <<destorys>>
Stu grades
顺序图
范例1
添加消息和条件(流程3)
Web interface Database wrapper
: Item
顺序图
范例3
图书管理员处理借书的顺序图 (不包括预留书籍的情况)
顺序图
范例3
系统管理员删除书目的顺序图
顺序图
范例3
借阅者预留书籍的顺序图
theBorrower : Borrower
1: Login
W eb Application
theTitle : Title
2: find(String)
顺序图
范例2
顺序图
范例3
系统管理员添加书籍的顺序图
: Administrator
: Maintenance Window
1: add item( )
: Title
2: find(String)
Check if corresponding title exist
3: return true
4: create(Integer, Title)
息附上前置和后置条件。
协作图
绘制协作图的步骤
创建协作图 协作图工具栏按钮简介 添加对象 添加消息 添加数据流
协作图
范例1
系统管理员添加书籍的协作图
1: add item( ) : Administrator
: Maintenance Window
3: update( )
2: find(String)
范例1
布置对象
teacher
Web interface Database wrapper
Stu info
Stu grades
顺序图
范例1
添加消息和条件(流程1)
teacher
Web interface Database wrapper
Stu info
Stu grades
Req stu info
顺序图
对象的创建和撤销
如果对象位于顺序图的顶部,说明在交互开始 之前该对象已经存在了。如果对象是在交互的 过程中创建的,那么它应当位于图的中间部分。
对象在创建消息发生之后才能存在,对象的生 命线也是在创建消息之后才存在的。
创建对象的两种表示方法:
顺序图
对象的创建和撤销
如果要撤销一个对象,只要在其生命线终止点 放置一个“X”符号即可,该点通常是对删除 或取消消息的回应。
《include》
load grades logon
《include》
View grades
Generate Report cards
student
顺序图
范例1
确定将要建模的工作流
教师成功地检查学生分数 教师试图检查学生分数,但学生不在系统中 教师试图检查学生分数,但该学生分数不在系
统中
顺序图
相关文档
最新文档