时序图和协作图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 对象
❖ 时序图中的对象在概念上和它在对象图中 的定义是一致的,其图形表示也相同。
❖ 每个对象显示在单独的列里,用一个矩形 框代表一个对象,框内填写对象名和它所 属的类名,中间用一个冒号隔开。
Object1 : ClassA
2.生命线
❖ 生命线是对象标识符在垂直方向上拖出的一 条长虚线,表示时序图中的对象在一段时间 内的存在。
激活示例
激活的应用
❖ 当进行时序图建模时,所用到的消息主要 包括以下几种类型:
简单消息(Simple Message) 同步消息(Synchronous Message) 异步消息(Asynchronous Message) 反身消息(Message to Self) 返回消息(Return Message)
(1)简单消息(Simple Message)
❖ 简单消息是在同步和异步之间没有区别的 消息。
❖ 在不知道消息的类型的情况下就可以使用 简单消息。
❖ 在对系统进行时序图建模时,可以对所有 的消息都使用简单消息进行表示,然后再 根据情况确定消息的类型。
(2)同步消息(Synchronous Message)
如果对象在这个位置上,那么说明在发送 消息时,该对象就已经存在了; ❖ 如果对象是在执行的过程中创建的,那么 它的位置应该处在图的中间部分。
❖ 对象的创建有两种方法:
ObjectA 1: Create() ObjectB 2: ReturnMessage
ObjectA
ObjectB
1: Create()
: Administrator
:ManageWindow
1: UpdateBorrower()
:UpdateBorrowerDialog
2: CreateDialog()
:Borrower
3: FindBorrower() 5: UpdateBorrowerInfo()
4: FindBorrower()
2.链接
❖ 链接是两个对象间的连接。 ❖ 它的图形符号也是用一条连接在两个对象间
的实线表示。在连接线上可以标明对象名。
3.消息
❖ 消息代表协作图中对象间通过链接发送的消 息。
❖ 消息由一个对象发出,由消息所指的对象接 收。形成消息流。
❖ 消息流上标有消息的序号和对象间发送的消 息,消息的序号表明了消息发送的先后顺序。
7.4 时序图建模实例
例:图书管理系统时序图建模
1.添加借阅者
添加借阅者的过程为:系统管理员选择菜单项 “添加借阅者”,弹出AddBorrowerDialog对话框。 系统管理员可以在该对话框中输入借阅者的信息并 提交,随后系统对管理员所提交的借阅者信息进行 验证,查看输入的借阅证号是否已经存在于系统中, 若不存在,则为借阅者创建一个账户,并存储借阅 者信息。
:
:ManagerWindow
Administrator
1: AddBorrower()
:AddBorrowerDialog
2: CreateDialog()
:Borrower
3: AddBorrower()
4: FindBorrower() 5: NewBorrower()
6: Write()
2.修改借阅者
❖ 一个单独的时序图只能显示一个控制流。
❖ 使用时序图建模时,可以参考以下策略:
① 设置交互的语境,这些语境可以是系统、子系统、 类、用例和协作的一个脚本。
② 识别对象在交互语境中所扮演的角色,根据对象 的重要性及相互关系,将其从左至右放置在时序 图的顶部。
③ 设置每个对象的生命线。通常情况下,对象存在 于整个交互过程中,但它们也可以在交互过程中 创建和撤销。
❖ 当对象存在时,生命线由一条虚线表示; 当对象的过程处于激活状态时,生命线上 用一个激活条表示。消息用从一个对象到 另一个对象生命线的箭头表示,箭头以时 间顺序从上到下排列。
7.2 时序图元素及表示法
❖ 时序图有4种基本图形元素,包括:
对象(object) 生命线(lifeline) 激活(activation) 消息(message)
❖ 一条消息会触发接收对象中的一项操作。
对象
消息
2: Message
1: Message
:ObjectA
:Oபைடு நூலகம்jectB
3: Message
链接
协作图与时序图的互换(F5)
❖ 协作图和时序图都是表示对相间的交互作 用,只是它们的侧重点有所不同。
❖ 协作图和时序图在语义上是等价的,它们 可以从一种形式的图转换成另一种形式的 图,而不丢失任何消息。
到被调用对象的参数列表,并且最多包含一个返回给 调用对象的返回值。
❖ 当时序图中的消息比较多时,还可以通过对消息前置 序号表达式的方式指定消息的顺序。
❖ 消息内容标识的格式为:
[序号][监护条件]*[重复次数][返回值表:=]操作名(参数表)
6.对象的创建和撤销
❖ 对象的创建有几种情况: ❖ 时序图中的对象的默认位置是在图的顶部,
❖ 同步消息最常见的情况是调用,即消息发 送者(对象)在它的一个操作执行时调用 接收者(对象)的一个操作,此时消息名 称通常就是被调用的操作名称。
❖ 当消息被处理完后,可以送回一个简单消 息,或者是隐含的返回。
(3)异步消息(Asynchronous Message)
❖ 异步消息表示发送消息的对象不用等待回 应的返回消息,即可开始另一个活动。
❖ 异步消息就是发送方只负责将消息发送到 接收方,至于接收方如何响应,发送方则 不需要知道。对接收方来说,在接收到消 息后它既可以对消息进行处理,也可以什 么都不做。
(4)反身消息(Message to Self)
❖ 反身消息是一个对象将一个消息发送给它 自己的消息。
❖ 如果一条消息只能作为反身消息,那么说 明该操作只能由对象自身的行为触发。
❖ 时 多序附图加用数是条息“次定数的中可件操、无数正1*信的.”1以时作次条未整、息消号默才后序件定数1。息,.2认 能 返 、发。1除、无、的发回类送此22[了重,送的型。项、.1具、复但消系必默3…有2次在息列须认.2…消数协。值与时…表]息作监。该,…时示名图护可操表,。中条默作示称表嵌是件认的只。之示套必默。形发序消外消送不认参号息还息可时一一在多可用少,致次时次以十的表。。序发进包。示图送制含消中,许 ❖ 消息可以与类中的操作等效,即消息可以带有可传递
例:以图书管理系统中借阅图书为例: 时序图与协作图之间转换。
F5 或在Rational Rose中,在 Browse菜单下 选择:
Create Collaboration Diagram或
Create Sequence Diagram (1)根据时序图信息创建协作图 (2)根据协作图信息创建时序图
❖ 每个对象的底部中心的位置都带有生命线。 ❖ 生命线是一条时间线,从时序图的顶部一直
延伸到底部,所用的时间取决于交互的持续 时间。
3.激活
❖ 当一条消息被传递给对象的时候,它会触发该对 象的某个行为,激活了该对象。
❖ 在UML中,激活用一个在生命线上的细长矩形框 表示。
❖ 矩形本身被称为对象的激活期或控制期,对象就 是在激活期顶端被激活的。
8.1 概述
❖ 协作图(Collaboration Diagram)是UML 1.x版本 中的名称。在当时的认识中,认为它就是描述一个 协作的,所以称之为协作图。
❖ UML 2.0重新定义了协作的概念,并认为所谓协作 图与协作概念实际上没有什么必然联系,为了避免 误会,所以将它改名为通信图(Communication Diagram)。因此,在很多参考书中使用通信图而 不是协作图进行说明。
❖ 激活期说明对象正在执行某个动作。当动作完成 后,此时对象的一个激活期也宣告结束。
4.消息
❖ 消息是用来说明时序图中不同活动对象之间的通 信。
❖ 在时序图中,消息是由从一个对象的生命线指向 另一个对象的生命线的直线箭头来表示的,箭头 上面还可以表明要发送的消息名及序号。
❖ 在各个对象之间消息的次序由它们在垂直轴上的 时间顺序决定。
❖ 时序图强调的是交互的时间顺序;而协作图强 调的是交互的情况和参与交互的对象的整体组织。
❖ 从另一个角度来看,时序图按照时间顺序布局; 而协作图按照空间组织布局。
2: Message
1: Message
: Actor
5: Message
4: Message :ObjectB
:ObjectA 3: Message
7.1 概述
❖ 时序图(Sequence Diagram)也被称为 顺序图,是一种详细地表示对象之间行为 交互关系的图,主要用来描述对象之间信 息交换时的时间顺序。因此可以清晰而直 观的表示对象之间的行为交互关系以及操 作和消息的时序关系。
❖ 时序图的主要用途把用例表达的要求转化 为更进一步的精细表达。它还能用来记录 一个存在系统的对象现在如何交互。
❖ 这表明该操作可以被设置为private属性, 只有属于同一个类的对象才能够调用它。
(5)返回消息(Return Message)
❖ 返回消息是表示控制流从过程调用后,处 理结果返回信息。
❖ 返回消息一般可以缺省,隐含表示每一个 调用都有一个配对的调用返回。
5.消息中接收的表可以参该示参选“数消消项,表息数息,”是的在和以区表对对布分“示象序象尔的,消类间号表名”息角交达称区重色互式列分复中的形表的发时式,实送操间表分参的作顺示别表次名序。表,数号满示实。。足完参只一监成的有般护指个
: Librarian
:MainWindow
:BorrowDialog
1: BorrowBook()
2: CreateDialog()
:Borrower
:Book
④ 标明消息。从引发某个消息开始,在生命线之 间画出从顶到底依次展开的消息,显示每个消 息的内容标识。
⑤ 设置对象的激活期,可视化消息的嵌套或可视 化实际计算发生时的时间点。
⑥ 如果需要设置时间或空间的约束,可以为每个 消息附上合适的时间和空间约束。
⑦ 如果需要形式化的说明某控制流,可以为每个 消息附上前置和后置条件。
第7章 时序图
❖ 系统或对象的动态模型主要包括状态模型 和交互模型。 ❖ 状态模型用来描述系统或对象的动态行为, 用状态图和活动图进行描述,因此状态图和 活动图又统称为行为图; ❖ 交互模型主要用来帮助人们观察和分析系 统的交互行为,用时序图和协作图进行描述, 因此时序图和协作图又统称为交互图。
主讲人:
6: UpdateBorrowerInfo() 7: Write()
3.删除借阅者 4.添加书目 5.修改书目 6.删除书目 7.添加图书 8.删除图书 9.添加管理员
……
第8章 协作图
❖ 时序图和协作图都可以用来描述系统对象之间的 交互。 ❖ 时序图强调一组对象之间交互的时间顺序。 ❖ 协作图则是描述组成系统的各个成分之间如何协 作来实现系统的交互行为。
2: Return Message
❖ 在新创建的对象时,都可以发送“destroy”消息 来撤销新创建对象。
❖ 要想说明某个对象被撤销,需要在被撤销对象的 生命线末端放一个“×”符号进行标识。
ObjectA
ObjectB
1: Destroy() 2: Return void
7.3 时序图建模
❖ 对系统动态行为建模的过程中,当强调按 时间展开信息的传送时,一般使用时序图 建模技术。
简单协作图
8.2 协作图元素及表示法
构成协作图的图形元素主要有3种:
对象(object) 链接(link) 消息(message)
1.对象
❖ 协作图中的对象与时序图中的对象类似,用 一个矩形框代表一个对象,框内填写对象名 和它所属的类名,中间用一个冒号隔开。
❖ 协作图中无法表示对象的创建和撤销,所以 对象在协作图中的位置没有限制。
❖ 用例常常可被细化为一个或多个时序图。
❖ 时序图的最大特点是:它以二维的平面上 的一维来表示时间进度,在时间维上定义 各个对象所执行的操作以及它们之间所传 送的消息。从而能够在逻辑上清晰的刻画 这些操作和消息的时序关系乃至因果关系。
简单时序图
7.2 时序图元素及表示法
❖ 在UML中,时序图用一个二维图描述系统 中各个对象之间的交互关系。其中,纵轴 是时间轴,时间沿竖线向下延伸,由上至 下表示时间的先后顺序。横轴代表了参与 相互作用的对象。