交互图的种类
顺序图
维图。 横轴代表了在协作
中各独立的对象。 纵轴是时间轴,时 沿时间方向按时间 递增顺序列出各个
间沿竖线向下延伸。
对象所发出和接收
的消息。
6
主要内容
1 2 3 4 5
顺序图的基本概念 顺序图的组成元素 顺序图的交互框架 顺序图的建模步骤
顺序图的案例介绍
7
顺序图的组成元素
顺 序 图 的 组 成
8
对象
顺序图中对象的符号和对象图中对象所用的符号一样。 对象的命名方式:
UML : Course
: Course
UML
对象名和类名
类名(匿名对象)
对象名(不关心类)
9
创建和销毁对象
在顺序图中,创建对象操作的执行使用消息的箭头表示,箭 头指向被创建对象的框。 如果要撤销一个对象,只要在其生命线终止点放置一个“X” 符号即可。
3: balance
opt ref
4: debit(amountNumber,amount)
balance>amount
Debit Account(accountnumber,amount)
5: cash 6: cash
20
顺序图的交互框架
:
项目管理员
项目管理窗口 :用户接口
:项目
:
活动
:任务
清除项目
4
基本概念
顺序图作为一种描述在给定语境中消息是如何在对象间传递 的图形化方式。顺序图的用途分为以下三个方面:
确认和丰富一个使用语境的逻辑表达。系统的使用语境就是系 统潜在的使用方式的描述。一个使用语境的逻辑可能是用例的 一部分,或是一条控制流。 细化用例的表达。顺序图把用例表达的需求,转化为进一步、 更加正式层次的精细表达。用例常常细化为一个或者更多的顺 序图。 有效地描述如何分配各个类的职责以及各类相应职责的原因。
时序图-协作图-详解
动态图概念:从静态图中抽取瞬间值的变化描述系统随时间变化的行为,动态图包括交互图活动图状态图,这篇博客研究交互图包括时序图和协作图;-- 时序图:显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互;--协作图:描述对象之间的交互关系;~一.时序图(Sequenee Diagram)1. 时序图的概念时序图定义:描述了对象之间传递消息的时间顺序,用来表示用例中的行为顺序,是强调消息时间顺序的交互图;时序图描述的事物:时序图描述系统中类和类之间的交互,将这些交互建模成消息交换,时序图描述了类以及类之间的交换以完成的期望行为的消息,时序图中每条消息都代表了类的一个操作或者引起状态机改变的触发事件;时序图表示:参与交互的对象在时序图顶端水平排列,每个对象的底端绘制了一条垂直虚线,对象A像对象B发送消息,用一条带箭头的实线表示,该实线起始于对象A底部的虚线,终止于对象B底部的虚线;实线箭头水平放置,越靠近顶端越早被发送时序图轨迹:时序图提供了随时间推移的,清晰的可视化的轨迹;2. 时序图组成时序图组成:时序图包括四个元素对象(Object),生命线(Lifeline) ,激活(Activation) ,消息(Message)(1)对象(Object)对象:时序图中的对象在交互中扮演的角色就是对象;对象的符号:时序图中的对象与对象图中的表示方法一样,使用矩形将对象名称包含起来,并且对象名称下有下划线对象创建时机:对象可以在交互开始的时候创建,也可以在交互过程中进行创建;--处于顶部:如果对象的位置在时序图顶部,说明在交互开始的时候对象就已经存在了;--不在顶部:如果对象的位置不在顶部,那么对象在交互过程中创建的;(2)生命线(Lifeli ne)生命线:生命线是一条垂直的虚线,这条虚线表示对象的存在,在时序图中,每个对象的底部都有生命线生命线作用:生命线是一个时间线,从时序图顶部一直到底部都存在,其长度取决于交互的时间;对象的生命线:对象与生命线结合在一起就是对象的生命线,这个概念包含对象图标以及对象下面的生命线图标如上图;⑶激活(Activati on)LilIii激活(Activation) :代表时序图中对象执行一项操作的时期,激活期可以理解为语义中{}中的内容,表示该对象被占用以完成某个任务去激活(Deactivation) :指对象处于空闲状态,在等待消息激活这个对象;激活的表示:当对象处于激活时期,生命线可以拓宽为矩形,这个矩形条成为激活条;激活去激活的时机:--激活:对象激活是在激活条的顶部激活;--去激活:激活条的底部去激活,通常发生在一个消息离开对象生命线;⑷消息消息概念:定义交互和协作中交换信息的类,对对象之间的通信内容建模;消息动作:--动作种类:消息允许在实体间传递信息(传递参数),允许实体请求其它服务,对象之间通过发送和接收消息进行通信;--产生结果:消息可以触发操作,唤起信号,或使目标对象创建或销毁;消息的异步和同步通信:--异步通信:消息是信号的时候,发送信号之后,等待对方触发相应方法,这是明确的命名的对象间的异步通信;--同步通信:直接调用对象的方法,执行方法返回结果,这种具有返回控制机制的操作是同步通信;时序图和协作图中消息的区别:时序图中的消息强调顺序,协作图中的消息强调交换消息的对象间的关系;消息类型:两个对象间绘制消息3. 时序图示例示例简介:--使用场景:汽车租赁公司;-- 使用的对象:Customer ( 客户),Worker ( 工作人员),Order ( 请求),Record ( 记录),Car ( 汽车); --工作流程:①客户 向工人 提出租车要求,②工人 检查 请求,③客户 付款,④工人 填写 记录,⑤工人 取车;时序图:4.对象的创建和撤销对象位置:--顶部:时序图中对象的默认位置是在时序图顶部,这表明对象在交互开始之间就已经存在 --中间:如果对象在时序图中间部分,说明对象时在交互过程中创建的; 交互过程中创建对象的方法:--消息指向对象:消息是构造方法,箭头指向对象所代表的的矩形;过程调用中返回的消息E)两个对象之间的过程调用两个对象之间的异步消息绘制反身消息d!:□3 ok.. ...... ->I ... .....U .....5 wrrteReGQird()6 gfllCenf)CUSM men Gustomer--消息指向激活条:消息是构造方法,箭头指向对象下面的激活条撤销对象:如果想要在时序图中撤销一个对象,因为如果同时有几个对象,如果不进行特殊操作其生命周期将会一样长--效果图:下图中将Customer 和Order对象撤消了,因为它们基本没有参与后期的交互口njgr 砒record Record[]~ru■: 2 chackO,― __________-> 1 i: a■•'il J'n •>a »■a aii 11a Ha *!tl "a *■a »J "3: nkA\*y[)u 5 writeRacorci:]X■;£ g机盹* :• ■iu1 日(hew: OrdBr(J5.时序图建模技术时序图使用时机:对动态行为建模,强调时间展开信息的次序的时候,使用时序图;时序图管理策略单一控制流:一个单独的时序图只能显示一个控制流--多个时序图:完整的控制流很复杂,可以绘制多个时序图,一个主干时序图,多个分支时序图,使用包对这些时序图进行管理 时序图建模策略:--设置交互语境:交互所在的环境,包括哪些对象,属于什么系统,子系统,相关的操作类用例等; --对象排列顺序:根据对象重要性,从左到右排列在时序图中;--对象生命线:对象通常存在于交互的整个过程,也可以在交互过程中被创建和撤销;--消息排列:引发交互信息之后,消息按照时间顺序从上向下画出,先发出的消息 在后发出的消息上面; --激活期设置:可以将实际操作发生的时间点 消息 明确的显示出来;--时间空间约束:每个消息都可以附加合适的时间 和空间约束;--前置后置条件:每条消息可以附加前置 或 后置 条件;(1) 创建时序图新建时序图:在 视图浏览器 中 右键点击 Logical View (逻辑视图),选择New (新建)-> Sequence Diagram (6. Ratio nal Rose时序图操作时序图);添加对象:时序图中有两种对象,一种是参与者Actor, 一种是普通的对象;--参与者对象:在类图中创建一个对象,将其Stereotype 修改为Actor, 就变成了参与者,然后在视图浏览器中将这个元素拖到时序图中即可;(luiiti tied)三 口 Use Cast Vi 關Main 三AsEociati&ns竝血J B帼 $¥.*■rj艮發 UnitsAs 5 0 亡IMIEI帼 HerD i agr SJB 3 Component View €Jl Main Il^ploymeJit Vi &w Modal FropsrtiesCl BS EClass ytility tfse Case [nt trftce :F&cktg«CI BSS Ci agrw Use Case Dxa ■耳raai Ih 电虽Ssq.uftnc« Di Mchart Vi agramActivi t^- DiagramFilfeBL(2)添加对象鞍务人员设置对象属性:双击对象,在弹岀的General 对话框中修改对象属性--Name :对象名称,不输入也可以; --Document : 描述对象的文档;載务人员-- 普通对象 直接在时序图中点击按钮,在界面中创建对象--两种对象效果 学位管理nu ....null:对象保存在数据库或其它形式的永久存储体中 对象保存在内存中知道程序终止; :短时间内保存在内存中;⑶添加消息消息作用:消息用两个对象生命线之间的箭头表示,一个对象可以通过消息请求另一个对象执行某个操作 增加消息:--发送消息:将从发送消息对象的生命线拖到接收消息对象的生命线上;-- 显示取消编号和激活条:菜单栏Tools -> Options -> Diagram 选项卡,Sequence numbering 是消消息编号 of control 显示激活条;设置对象持续性--持续(Persistent) --静态(Static) --临时仃 ransient)Focus协作图(Collaboration Diagram)1. 协作图概念协作图:协作图是一种类图,包含类元角色和关联角色,不仅仅是类元和关联;--强调:强调参与交互的各个对象的结构信息和组织;协作图建模对象:对有交互的对象和这些对象之间的关系建模,不参与交互的对象及它们的关系忽略协作图内容:协作图中表现了类操作中用到的参数,布局变量,操作中的永久链;对象图扩展:协作图可以看做对象图的扩展,该图展示了对象之间的关联,显示岀了对象间的消息传递2. 协作图内容(1) 对象(Object)对象:代表协作图交互中的主体,和时序图中对象的概念类似;协作图和时序图中对象区别:协作图中对象无法创建和撤销,因此对象在协作图的位置没有限制(2) 链(Link)链的表示:链的符号和对象图中链所用的符号是一样的,用来连接两个类角色的实线;/)-- :创建对象之间的通信路径;-- :显示对象可以调用自己的属性;在两个对象之间或一个对象本身增加消息在两个对象之间或一个对象本身从反方向增加消息-- :显示两个对象之间的信息流;-- :在反方向显示两个对象之间的信息流;路径构造性:对象之间的连接可以由链末尾附加的路径构造型表示--添加方式:双击链,选择visibility 属性即可;⑶消息(Message)消息概念:对象间通过链接发送的就是消息;--消息传递方向:对象之间的箭头表明对象间交换的消息流,一个对象发出消息,链指向的对象接收消息,链用于实现消息传输--消息标识:消息流标有消息的序列号和对象间发送的消息名称;--消息结果:每条消息否会触发接收对象的一系列操作;消息序号:协作图与时序图中的消息类型是一样的,为了表明消息顺序,需要为消息添加序号;3. 协作图示例示例简介:汽车租赁流程;-- 涉及到的对象:Customer (客户),Order (订单),Worker (工人),Record (记录),Car (汽车);--流程简介:客户写好订单,工人核对订单,核对后订单存在,允许客户取车,工人填写记录,并将车取岀;114. 协作图建模策略协作图使用场景:对系统动态行为建模,按组织对控制流建模使用协作图;协作图管理策略:--单个协作图:单个协作图只能显示一个控制流;--多个协作图:描述复杂系统的时候,需要许多协作图共同描述,一些图是主干协作图,还有许多分支路径的控制流的协作图,使用包管理这些协作图;协作图的建模策略:--设置语境:设置协作图所在的环境,如系统,子系统,类,操作,用例或用例脚本;--对象顶点:识别对象在协作图中扮演的角色,协作图中,对象是图的顶点;--变化修改:每个对象最初都会设置初始值,如果期间对象发生了变化,修改的方式是:协作图中放置一个复制对象,更新复制对象,同过后造型become copy 连接二者;--确定链接顺序:先确定关联链接,哪些对象相互链接;在确定消息链接,路径构造型等表示对象间如何连接;--消息顺序:从引起交互的消息开始编号,将编号信息和描述信息附到链接上,描述了对象之间的传递次序;--时间空间约束:可以为每个消息附加时间和空间上的约束;--前置后置条件:可以为每个消息附加前置和后置条件;5. Rati onal Rose 绘制协作图13(1)创建协作图创建流程:视图浏览器-> Logical View ( 逻辑视图)-> New ( 新建)-> Collaboration Diagram (协作图);链)Cunt i tied ) E Cl Use Case Vi ew 里 Main 玄 Asscci at i ons o Ma: Cor IS 固 Niodal Froparti es ClassClass Utility Use Cas€InterfaceFackAg®Class Di agram ; Sequence Diagram Statfrchar t Di agr un Activi tjr Diagram Die URL(2) 添加对象协作图中添加对象:与时序图基本类似; --添加参与者对象:在类图中创建好类,然后将类型设置为Actor, 然后在视图浏览器中将 Actor拖到协作图中--添加普通对象:直接点击工具栏中的图标设置即可 ; ⑶添加消息添加对象间消息:在两个对象之间添加消息--添加消息:使用在通信路径上添加消息--设置消息名称:双击消息箭头,可以在弹岀的对话框中修改消息名称(4) 添加数据流数据流概念:数据流是一个对象向另一个对象发送消息返回的消息;--使用场景:没必要在每个消息上都加上数据流,只要在中药消息上附加数据流即可;I Q Q数据流添加方法:选择或按钮,单击要返回的数据消息,数据流箭头就会被添加到这个消息上-- 建立通信路径使用/I连接两个对象,建立两个对象间的通信路径添加反身消息:选择象添加消息;QI点击对象,就会岀现指向对象本身的路径可以为该对选择点击这个指向本身的路径6.时序图与协作图转换各自侧重点:时序图和协作图是等价的,可以任意转换,而不丢失信息--时序图:描述交互过程中的时间顺序,没有明确表达对象间关系;--协作图:描述了对象间的关系,但是时间顺序必须从消息的序号中获取转换示例--场景介绍:学生毕业管理--对象介绍:教务人员,学位评价,成绩管理,奖惩管理,信息打印;--控制流介绍:①教务人员输入学号进入学位评价模块,②学位评价模块会向成绩管理模块查询成绩,③向奖惩管理模块询奖惩记录,④学位评价模块会将结果打印到信息打印模块,⑤信息打印模块将结果返回给教务人员;时序图151学号协作图学位萱理nu::成绩管理2学号---------- >奖焦官理nu::3成绩6结果信息打印17信息打学位管印w ------ 理6■结果7.时序图和协作图对比时序图和协作图 共同点:都是有 消息和类角色组成 接口方法由消息发送对象触发 --支持消息:时序图和协作图都支持消息时序图和协作不同点--衡量工具 时序图和协作图可以作为衡量系统耦合性的工具耦合性就是系统中模型之间的依赖性两个模型之间的依赖关系通过查看两个模型之间的消息数量和类型就可以看岀,消息交互少的耦合性高;--规定责任 时序图和协作图 都规定了消息发送对象 和消息接收对象 的责任,每个接收对象都有消息对应的接口这个--对象创建撤销侧重点:时序图侧重描述对象的创建和撤销,新创建的对象放在对象生命线上对应的时间点,撤销的对象在结束的地方放一个X表示该对象不能再继续使用;协作图中创建撤销的概念不存在,对象时始终存在的,只能通过消息描述或约束来说明对象的创建和撤销;--链接侧重点:时序图中的链没有表示岀来,可以随意绘制消息,有些逻辑交互可能不会发生;协作图的消息是映射在链上的,消息和链平行放置,如果想要通过消息查看对象之间的关联使用协作图最好;--激活和去激活:时序图表现有激活和去激活,协作图上没有时间概念的描述,无法清晰地表示对象的激活和去激活;实例-图书管理系统1. 管理员为图书添加类别控制流说明:-- 涉及到的对象:Admin (管理员),BooklnfoWindow (图书信息窗口),Tittle (图书类别),Item (图书条目);--流程:管理员查询图书信息窗口,查看有没有相应的图书类别,如果有插入该图书条目;时序图:192. 管理员删除图书协作图BooktafaVViidoTittleVVnu::nu ........ .1添加图书2查询粪别 3类别有在 < .控制流说明:-- 涉及到的对象:Admin (管理员),BooklnfoWindow (图书信息窗口), Tittle (图书类别),ltem(图书条目); --控制流程:管理员登陆图书信息窗口删除图书,查表图书类别是否存在,查找图书是否存在,如果都返回true, 删除图书条目;时序图:Admin菅理员Be oh Info'//in dowTjttb协作图:AdminWJf 员3. 管理员借书时序图nu';nu. ................................... 1刪除團书 ------------ >nu2查找圈书类别丨 -------------------------------- ---- -------------- --- ------------------------3存在< ................ 4查找由书条目I~~i~■5存在< --------------- -:---- G删除歯书衆目nu……r 1睛除图毛Booklnfo ItemWindow控制流说明:21-- 参与的对象:Admin ( 管理员),BooklnfoWindow (图书信息窗口 ), Tittle ( 图书类别),Borrower ( 借阅者),Loan(借书记录),item ( 图书条目); --流程:管理员登陆图书信息窗口,查询图书类别是否存在,查询图书条目是否存在,查询借阅者是否存在,创建借书 记录; 时序图:3存在 < -----------5存在7有在3创建倍阅记录:协作图 Booklnfo'A'indcTit" BorrowerLoan□ □ 0 t □1借书请或 2査询娄别------------ - -----------。
UML的流程图
UML的流程图UML是一种面向对象的统一建模语言,用于快速地描述软件系统的结构、行为和交互。
而流程图是UML中的一种图形语言,用于对系统中的流程进行描述和设计。
本文将为大家介绍UML流程图的概念、种类、结构和使用方法。
概念UML流程图,也称UML活动图,是一种图形化的表示算法、流程和业务过程的工具,它可以直观地表达系统中的任务、动作、决策和控制流程。
UML流程图常用于软件开发过程中的需求分析、业务流程设计、系统架构设计等领域。
种类UML流程图包含四种基本类型:1.基本活动图基本活动图可以用来表示操作的顺序或并行方式,其中每个操作都是基本动作,例如读取、写入、计算等。
基本活动图通常用于领域建模和系统流程的初步设计。
2.流程状态图流程状态图是对系统中复杂操作的一种表示,可以用来展示操作的状态和转换方式。
流程状态图主要包括状态、转换和起始状态,它通常用于描述系统中的复杂业务流程。
3.并发活动图并发活动图可以用来表达系统中多个处理程序的并发执行过程,它通常使用平行线表示并发执行的多个处理程序。
4.条件活动图条件活动图是一种用于表示系统中动态交互的活动图,其中条件是关键的组成部分。
条件活动图通常用于强制执行程序在满足一定条件的情况下才能执行,例如软件开发中经常用到的循环结构和分支结构等。
结构UML流程图的结构由一系列基本元素组成:1.开始节点开始节点,在UML流程图中表示整个活动图的起点。
一般情况下,开始节点在活动图的左侧上方,使用一个表示圆圈中心的空心点表示。
2.结束节点结束节点,在UML流程图中表示整个活动的结束点。
一般情况下,结束节点位于活动图的右侧下方,使用一个表示实心点的圆圈表示。
3.动作节点动作节点是一种执行操作的元素,可以进行计算、赋值、IO操作等。
动作节点在UML流程图中通常用长方形表示。
4.决策节点决策节点用于表示一个条件分支,并根据条件的结果选择一个或多个分支行动。
在UML流程图中,它通常使用菱形表示。
统一建模语言
统一建模语言统一建模语言(UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它融入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
1.UML的结构UML的结构包括基本构造块、支配这些构造块如何放在一起的规则(体系架构)和一些运用于整个UML的机制。
(1)构造块。
UML有三种基本的构造块,分别是事物(thing)、关系(relationship)和图(diagram)。
事物是UML中重要的组成部分,关系把事物紧密联系在一起,图是很多有相互相关的事物的组。
(2)公共机制。
公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制四种。
●规格说明:规格说明是事物语义的文本描述,它是模型真正的核心。
●修饰:UML为每一个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息。
●公共分类:包括类元与对象(类表示概念,而对象表示具体的实体)、接口和实现(接口用来定义契约,而实现就是具体的内容)两组公共分类。
●扩展机制:包括约束(添加新规则来扩展事物的语义)、构造型(用于定义新的事物)、标记值(添加新的特殊信息来扩展事物的规格说明)。
(3)规则。
UML用于描述事物的语义规则分别是为事物、关系和图命名。
给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。
UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分、它们的关联性、交互、机制和指导原则等这些提供系统设计的信息。
而具体来说,就是指5个系统视图,分别是逻辑视图、进程视图、实现视图、部署视图和用例视图。
●逻辑视图:以问题域的语汇组成的类和对象集合。
●进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描绘了所设计的并发与同步结构。
UML交互图
类图如下
student + + + + + + + + name address ID age sex : : : : : std::string std::string int int char + + + + + + + + schedule semester : int commit () selectcourse () changecourse () delete () submit () updata () save () pass () : : : : : : : : void void void void void void void void 0..1 0..*
活动者或对象
一般活动者和对象按照从左到右的顺序排列, 主要活动者排在最左边;
活动者或对象
对象的命名方式有三种:
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
生命线
每个对象都有自己的生命线,是一条垂直的虚线,用 来表示一个对象在一段时间内存在。 如对象生命期结束,则用e () : getID () : getphone () : selectcourse () : givegoals () :
要求
绘制学生修改课程顺序图
控制焦点( focus of control )/激活期
对象执行某个动作的时期
消息
对象间交互信息的方式,消息分为五种:
对象创建、同步调用、返回、异步消息、交叉异步消息、对 象销毁
顺序图元素
间消息来表示, 对象间的通信通过在对象的生命线之 间消息来表示,消息的箭头类型指明 消息的类型。 消息的类型。 同步消息=调用消息(Synchronous Message) 消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接 收者放弃或者返回控制。用来表示同步的意义。 异步消息(Asynchronous Message) 消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动, 不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作 的。 返回消息(Return Message) 返回消息表示从过程调用返回
第6章 顺序图和协作图
6.4 顺序图理解
计算机 打印文件 [打印机忙] [打印机空闲] 打印服务器 打印机 打印队列
条件[打印机忙]和[打印机空闲]是两个互斥的条件, 打印服务器根据条件来确定消息发给对象“打印 机”还是对象“打印队列”。两个消息都是从同 一点出发的,这表示两个分支在同一时间点上只 能执行一个分支。
6.4 顺序图理解 6.4.2 从属流 从属流与条件分支不 同,从属流允许某一 个对象根据不同的条 件改变执行不同的操 作,即可以创建对象 的另一个生命线分支。
如果为了强调需要对多个对象重复发送某个消息, 可以在顺序图中添加循环标识符号,顺序图中表 示循环执行的消息有三种方式。
第一种,在需要循环重复执行的消息前添加符号 “*”,并在其后的中括号中写明具体的条件。
计算机 打印服务器 打印队列
校验打印文件
*[for each file] [check()=true]
6.2 顺序图元素
顺序图描述了对象以及对象之间传递的消息,强 调对象之间的交互是按照时间的先后顺序发生的, 这些特定顺序发生的交互序列从开始到结束需要 一定的时间。在顺序图中主要包括了以下四种元 素: • • • • 对象 生命线 激活 消息
6.2 顺序图元素 6.2.1 对象
类定义了对象可执行的各种行为,但在面向对象 系统中,行为的执行者是对象,而不是类,因此 在顺序图中通常描述的是对象层次而不是类层次。 面向对象分析中最基本的单位是对象,它代表现 实世界中一个一个地具体事物。 在顺序图中使用一个方框表示 一个对象,对象的名字下面有 一个下划线,一个学生对象 “张三”如图所示。
张三
6.2 顺序图元素
在顺序图中也可以使用用例图中的参与者图符 。 如果一个对象在顺序图的第一个操作之前就已经 存在,那么该对象的图符就应该画在顺序图的顶 部。 如果一个对象是在顺序图的交互过程中,由其他 对象创建的,那么该对象就不应该出现在顺序图 的顶端,而应该出现在创建该对象消息的末端 。
uml构件的种类
uml构件的种类UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一组丰富的构件类型,用于描述系统的不同方面。
本文将从不同的角度介绍UML构件的种类。
1. 结构性构件结构性构件用于描述系统的静态结构,包括类、接口、包、对象等。
类是UML中最基本的构件,用于表示系统中的实体和其属性、操作。
接口定义了类或组件所提供的服务。
包是一组相关元素的容器,用于组织和管理系统的结构。
对象是类的实例化,用于描述系统中的具体实体。
2. 行为性构件行为性构件用于描述系统的动态行为,包括活动、状态机、用例等。
活动图用于描述系统中的活动流程,表示系统在不同活动之间的转换和流程控制。
状态机图用于描述系统中的状态转换,表示系统在不同状态之间的转换和行为。
用例图用于描述系统的功能需求,表示系统与外部实体之间的交互。
3. 交互构件交互构件用于描述系统中的交互行为,包括时序图、通信图等。
时序图用于描述系统中的交互顺序,表示系统中不同对象之间的消息传递和时序关系。
通信图用于描述系统中的对象之间的交互,表示系统中不同对象之间的消息传递和通信路径。
4. 实现构件实现构件用于描述系统中的实现细节,包括组件、节点等。
组件是系统中的可重用部分,用于实现系统的某个功能或服务。
节点是系统中的物理设备或软件环境,表示系统的部署和运行环境。
5. 分析构件分析构件用于描述系统的分析模型,包括用例、类、活动等。
用例是对系统功能需求的描述,表示系统与用户之间的交互。
类是对系统中实体的描述,表示系统中的对象和其属性、操作。
活动图用于描述系统中的活动流程,表示系统在不同活动之间的转换和流程控制。
6. 部署构件部署构件用于描述系统的部署架构,包括节点、组件等。
节点是系统中的物理设备或软件环境,表示系统的部署和运行环境。
组件是系统中的可重用部分,用于实现系统的某个功能或服务。
7. 用例构件用例构件用于描述系统的功能需求,包括用例、参与者等。
图书馆管理系统用例图、活动图、类图、时序图
图书馆管理系统一.图书馆管理系统需求分析1、系统目标设计系统开发的总目标是实现内部图书借阅管理的系统化、标准化和自动化。
能够对图书进展注册登记,也就是将图书的根本信息〔如:书的编号、书名、作者、价格等〕预先存入数据库中,供以后检索。
能够对借阅人进展注册登记,包括记录借阅人的姓名、编号、班级、年龄、性别、地址、等信息。
提供方便的查询方法。
如:以书名、作者、出版社、出版时间〔确切的时间、时间段、某一时间之前、某一时间之后〕等信息进展图书检索,并能反映出图书的借阅情况;以借阅人编号对借阅人信息进展检索;以出版社名称查询出版社联系方式信息。
提供对书籍进展的预先预订的功能。
提供旧书销毁功能,对于淘汰、损坏、丧失的书目可及时对数据库进展修改。
能够对使用该管理系统的用户进展管理,按照不同的工作职能提供不同的功能授权。
提供较为完善的过失控制与友好的用户界面,尽量防止误操作。
2、系统功能需求分析(1) 读者管理:读者信息的制定、输入、修改、查询,包括种类、性别、借书数量、借书期限、备注等。
(2) 书籍管理:书籍根本信息制定、输入、修改、查询,包括书籍编号、类别、关键词、备注。
(3) 借阅管理:包括借书,还书,预订书籍,续借,查询书籍,过期处理和书籍丧失后的处理。
(4)系统管理:包括用户权限管理,数据管理和自动借还书机的管理满足以上需求的系统主要包含有一下几个子系统〔1〕根本业务功能子系统:该系统中主要包含了借书还书和预订等功能。
〔2〕根本数据录入功能子系统:该子系统主要包含有书籍信息和读者信息录入功能。
〔3〕信息查询子系统:包含了多功能的查询书籍信息和读者信息。
〔4〕数据库管理功能子系统:主要包含了借阅信息管理功能,书籍信息管理功能和预订信息管理功能。
〔5〕帮助功能子系统。
二、系统动态建模1、用例图、图书馆管理系统的用例图从用例图中我们可以看出管理员和读者之间对本系统所具有的用例。
管理员所包含的用例有:(1)登录系统:管理员可以通过登录该系统进展各项功能的操作(2)书籍管理:包括对书籍的增删改等。
uml交互图(顺序图通信图鲁棒图定时图)
uml交互图(顺序图、通信图、鲁棒图、定时图)交互与交互图交互的概念一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为消息UML中的4种交互图顺序图:顺序图是一种强调消息时间顺序的交互图,为读者提供了控制流随着时间推移的清晰的可视化轨迹通信图:UML 2.0中的通信图实际上就是UML1中的协作图,它强调的是参加交互的对象的组织,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹定时图:采用了一种带数字刻度的时间轴来精确地描述消息的顺序交互概述图:是交互图和活动图的混合物如何阅读交互图阅读顺序图顺序图的主要元素对象与角色:最顶上一排矩形框。
在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。
作为具体的事物,一个对象代表现实世界中的某个东西。
例如,aOrder作为类Order的一个实例,可以代表一个特定的订单;而如果作为一个原型化的事件,则aOrder可以代表类Order 的任何一个实例。
生命线与控制焦点:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在消息:用来描述对象之间所进行的通信的,该信息带有对将要发生的活动的期望。
当传送一个消息时,它所引起的动作是用一个通过对计算过程的抽象而得到的可执行语句(就是方法头)。
消息分为五种:调用、返回、发送、创建和销毁调用:表示调用某个对象一个操作顺序编号(第几步的编号):整个消息的传递过程就形成了一个完整的序列,因此通过在每个消息的前面加上一个用冒号隔开的顺序号来表示其顺序。
除了顺序编号之外,还可以采用嵌套方案:读图小结第1步在dispatchForm(分发窗体)中,对于某个已支付的Order进行分发时,就会调用该订单(一个Order类的实例对象aOrder)的dispatch()方法。
1.1 dispatch()方法将逐个调用[for each orderitem]该Order对应的所有OrderItem对象的getPeddleryId()方法获取供应商ID 1.2(PeddleryId),1.1.1而OrderItem对象则是通过其所对应的Product对象来的getPeddleryId()方法来获取供应商ID。
UML各种图例—用例图、类图、状态图、包图、协作图、顺序图
UML各种图例——用例图、类图、状态图、包图、协作图、顺序图面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.∙决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.每个类图包括类,关联和多样性表示.方向性和角色是为了使图示得更清楚时可选的项目.包和对象图为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型. dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。
交互图
顺序图表示
对象/参与者
对象维
生命线 消息 时间维 控制焦点
19
顺序图的表示
对象 • 顺序图中对象的符号和对象图中对象所用的符号 一样。 • 将对象置于顺序图的顶部意味着在交互开始的时 候对象就已经存在了 • 如果对象的位置不在顶部,那么表示对象是在交 互的过程中被创建的
20
顺序图的表示
• 对象的撤销 • 如果要撤销一个对象,只要在其生命线终止点放 置一个“X”符号即可,该点通常是对删除或取 消消息的回应。
同步消息 返回消息 异步消息 简单消息
• UML1.3前的消息还有:
–简单消息 simple
• Rose扩充的消息
–阻止消息 balking –超时消息 time-out
26
顺序图的表示
同步消息:消息的发送者把控制传递给消息的接收者, 等待接收者返回或放弃控制.
调用消息必有一个与之配对的返回消息, 但是可以不 用画出.
将订单生成送货单
顺序图
• (2)嵌套编号: • UML标准中定义了“嵌套编 号方案”。嵌套编号方案表示 了方法间的包含关系。 • 由于顺序图本身已经充分表现 出消息执行的顺序,因此在 UML模型中并没有要求对消 息进行编号。只是要求在通信 图中,对消息进行了编号。但 在Rose等建模工具中,为了 能够自动实现顺序图与通信图 的转换,在顺序图中也默认采 取“嵌套编号方案。如1.1, 1.2,1.3
21
顺序图的表示
对象的左右排列位置
对象的左右顺序并不重要,但是为了图面的清晰整 洁起见,通常应遵循以下两个原则: (1)把交互频繁的对象尽可能地靠拢 (2)把初始化整个交互活动的对象(有时是一个 参与者)放置在最左边
Байду номын сангаас
交互图
7.1.3 表示循环和分支
• 操作符ingore也包含一个子片段和一个消息类型列表。列表中的消息 类型可以出现在子片段中,但交互会忽略它们。它的含义与consider 刚好相反。
• 4.break • 操作符break和循环语句的berak有些类似,通常用break定义一个含有
监护条件的子片段。如果监护条件为“真”则执行子片段,而且不执 行子片段后面的其他交互;如果监护条件为“假”,那么就按正常流 程执行. • 在图7-10中,当系统要用户登录时。如果单击“取消”按钮,那么就 将取消登录。并且不再执行后续地交互;否则就将等待用户输入登录 信息,系统对输入的信息进行相应地应答.
• (3).当Order的实例对象aOrder得到返回的PeddleryId后,根据该值判断 是否已经有相对应的DeliverOrder对象,如果没有就创建它(调用 create(PeddleryId)),然后再将对应的Product添加到这个DeliverOrder 对象中。否则就直接添加到相应的DeliverOrder对象中
7.1.2 顺序图的表示
• 在图7-5中,我们把属于同一个对象发送和接受的消息放 在同一层进行编号.如对象dispatchForm的发送和接受消 息放在第一层编号,它们是:1、2;把对象aOrder发送和 接受的消息放在第二层编号,它们是1.1、1.2、1.3、1.4; 匿名对象:OrderItem的发送和接受消息放在第三层编号, 它们是:1.1.1、1.1.2
LOGO
《UML 统一建模》
第7章 交互图
目录
7.1 顺序图 7.2 通信图 7 . 3 绘制交互图
7.4 顺序图与通信图的关系 7.5 定时图
第7章 交互图
• 描述系统中,对象之间通过消息进行通讯的图就是交互图。 交互图包含4种类型,它们是顺序图、通讯图、定时图、 交互概述图。
利用visio在软件开发中各种图
UML--示范.(用例图、类图、序列图、时序图、包图....)2010-12-19 14:39中文版:面向对象的问题的处理的关键是建模问题。
建模可以把在复杂世界的许多重要的细节给抽象出。
许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。
UML中有九种建模的图标,即:l用例图l类图l对象图l顺序图l协作图l状态图l活动图l组件图l配置图本课程中的某些部分包含了这些图的细节信息的页面链接。
而且每个部分都有一个小问题,测试一下你对这个部分的理解。
―――――――――――――――――――――――――――――――――――――――为什么UML很重要?为了回答这个问题,我们看看建筑行业。
设计师设计出房子。
施工人员使用这个设计来建造房子。
建筑越复杂,设计师和施工人员之间的交流就越重要。
蓝图就成为了这个行业中的设计师和施工人员的必修课。
写软件就好像建造建筑物一样。
系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。
在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。
现在它已经成为了软件行业的一部分了。
UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。
UML被应用到面向对象的问题的解决上。
想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。
一个模型model就是根本问题的抽象。
域domain就是问题所处的真实世界。
模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。
记住把一个对象想象成“活着的”。
对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。
对象的属性的值决定了它的状态state。
类Classes是对象的“蓝图”。
一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。
人机交互的方式与种类
人机交互的方式与种类初步看到这个课题,并不清楚人机交互的概念,经过老师的讲解和个人的搜索资料,才明白人机交互是一门研究系统与用户之间的交互关系的学问。
系统可以是各种各样的机器,也可以是计算机化的系统和软件。
用户通过人机交互界面与系统交流,并进行操作。
小如收音机的播放按键,大至飞机上的仪表板、或是发电厂的控制室。
从学习中了解到,人机交互这个科研项目已有近百年历史,早在59年,美国学者B.Shackel从人在操纵计算机时如何才能减轻疲劳出发,提出了被认为是人机界面的第一篇文献的关于计算机控制台设计的人机工程学的论文。
自此,人机交互的概念被提出,时至今日,人机交互已有自己的方式,如:命令行方式、图形化界面,其主要目的就是为了让用户在操作和使用时感觉方便,提高数据管理效率。
目前,人机交互系统已发展成熟,被应用到各个领域,如:汽车领域。
该系统实现了人与车之间的对话功能。
车主可通过该系统,轻松把握车辆状态信息(车速、里程、当前位置、车辆保养信息等)、路况信息、定速巡航设置、蓝牙免提设置、空调及音响的设置。
再有多媒体与虚拟现实系统,与传统用户界面相比,引入了视频和音频之后的多媒体用户界面,最重要的变化就是界面不再是一个静态界面,而是一个与时间有关的时变媒体界面。
还有窗口系统。
窗口系统是控制位图显示设备与输入设备的系统软件。
它所管理的资源有屏幕、窗口、象素映象(pixmap)、色彩表、字体、光标、图形资源及输入设备。
人机交互还在人机工程学,认知心理学,脸部追踪等多个领域中实现着它的价值,人机交互技术是目前用户界面研究中发展得最快的领域之一,对此,各国都十分重视。
美国在国家关键技术中,将人机界面列为信息技术中与软件和计算机并列的六项关键技术之一,并称其为"对计算机工业有着突出的重要性,对其它工业也是很重要的"。
在美国国防关键技术中,人机界面不仅是软件技术中的重要内容之一,而且是与计算机和软件技术并列的11项关键技术之一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在顺序图中,把激励表示为从一个对象生命线到另一个对象生命线的一个水平实线箭 头。对于对象到自身的激励,箭头就从同一个对象符号开始和结束。箭头用激励(操作或信 号)的名字及其参数值或者参数表达式标示。
箭头也可以用一个序列数标示,以表示激励在整个交互中的顺序。由于箭头的物理位置 标示了相关的顺序,所以在顺序图中一般省略序列数,但它们在协作图中是必需的。在两种 图中,序列数对于标示并发控制线程很有用处。另外,还可以用监护条件标示激励。 8.5.3 表示选项
在每个拥有自己的控制线程的对象并发的情况下,一个激活说明了一个对象执行一个操 作的持续时间。其他对象的操作并不相关。如果直接计算和间接计算(由嵌套过程执行)的 区别并不重要,那么可以用整条生命线表示一个激活。
63
SJ/T XXXX.1 - XXXX
在过程性代码的情况下,一个激活表示在一个对象中一个过程是活动的或者它的从属过 程(可能在其它的对象中)是活动的持续时间。换句话说,可以在一个特定的时间看到所有 活动着的嵌套过程激活。在递归调用一个已激活的对象的情况下,第二个激活符号画在第一 个符号稍微靠右的位置,在视觉上它们看起来像是叠起来一样(可以以任意的深度嵌套递归 调用)。 8.4.3 例子
把对象表示成称之为“生命线”的垂直虚线,生命线代表一个对象在特定时间的存在。 如果对象在图中所示的时间段内被创建或者销毁,那么它的生命线就在适当的点开始或结 束。否则,生命线应当从图的顶部一直延续到底部。在生命线的头部画对象符号。如果一个 对象在图中被创建,那么把映射为创建对象的激励的箭头的头部画在对象符号上。如果对象 在图中被销毁,那么用一个大的“X” 标记它的析构,该标记或者放在映射为引起析构的 激励的箭头处,或者放在从被销毁的对象最终返回的箭头处(在自析构的情况下)。在图的 顶部(第一个箭头之上)显示在转换开始时就存在的对象,而在整个转换完成时仍然存在的 对象的生命线,要延伸超出最后一个箭头。
在下文中使用术语对象,但可用任意种类的实例代替它。
8.2 顺序图
8.2.1 语义 一个顺序图表达一个交互,一个交互是在一个协作中的类目角色之间的一组消息,以实
现所期望的操作或达到某种结果。 8.2.2 表示法
顺序图是二维的,其中:1)垂直方向表示时间,2)水平方向表示不同的对象。 正常地,时间维由上到下(根据需要,也可以由下到上)。通常只有时间顺序是重要的, 但在实时应用中时间轴是能度量的。对象的水平顺序并不重要。在图中可以把对象分组,形 成“泳道”。(下面描述顺序图的详细内容) 8.5 中“消息和激励”描述了用在顺序图中的不同种类的箭头。顺序图中的箭头与协作 图中的是相同的,这些在 9.2“协作图”中叙述。 注意,该表示法的很多的内容直接来自 Buschmann、Meunier、Rohnert、Sommerlad 和 Stal 的对象消息顺序图表示法,它本身是由对象消息顺序图表示法派生的,但经过了修改。
a) 到对应激活箭头头部的消息的激活关联; b) 到同一个激活内的前一个消息的前趋关联(也即,在激活中被发送的最后一条消
息),在前趋链中返回的必须是最后的消息。它不是任何消息的前趋。
8.3 对象生命线
8.3.1 语义 在顺序图中,对象生命线表示扮演特定角色的对象。在生命线之间的箭头表示扮演这些
角色的对象之间的通讯。在顺序图中表示处于一个角色状态的对象的存在和持续,但没有表 示对象之间的关系。类目角色规定这样的角色;它描述扮演该角色的对象的性质,并描述处 于该角色的对象和其他对象之间的关系。 8.3.2 表示法
标记的转换或激励的旁边。 可以在消息名上用时间表达式表达计时约束。可以把函数 sendTime(对象发送消息的
时间)和函数 receiveTime(对象接收消息的时间)应用到消息名上,以计算时间。时间函 数集是可扩充的,因此用户可根据需要发明新的函数,以用于特定的情境或实现特性(如 elapsedTime、executionStartTime、queuedTime 和 handledTime)。
参看上两个图。 8.4.4 映射
见 8.2 的“ 映射”。
8.5 消息和激励
8.5.1 语义 激励是两个对象间的通讯,这样的通讯传输将产生的动作所期望的信息。一个激励会引
起一个被调用的操作,产生一个信号,或者引起一个对象被创建或者被消除。 消息是激励的规约。(也即,它说明发送对象和接收对象应当遵从的角色,以及当执行
可以用如下的箭头变体表示不同种类的通讯: 实箭头 过程调用或其它的嵌套控制流。在外层控制恢复之前,要完成整个嵌套序列。可以把它 用于普通的过程调用。在某个主动对象发送信号并等待完成嵌套的行为序列时,也可以把它 用于并发的主动对象。 枝状箭头 单调的控制流。每个箭头表示按顺序进入到下一步。通常所有的消息都是异步的。 半枝状箭头 异步激励。替代枝状箭头,用于显式地表示在过程顺序中的两个对象之间的异步通讯。 虚的枝状箭头 从过程调用的返回。 变体: 在控制的过程流中,可以省略返回箭头(暗示激活结束),假设每个调用在任何激励后 都有一个配对的返回,并可以把返回值标示在初始的箭头上。对于非过程控制流(包括并发 处理和异步消息),都应当显式地标出返回。 变体: 在并发系统中,一个满箭头表示产生一个控制线程(有等待的语义),一个半箭头表示 发送消息而不产生控制(有非等待的语义)。 变体:
在图中的箭头次序映射为消息间的一对关联,它对应着箭头映射在其上的激励。以垂直 顺序,在对应连续箭头的消息间建立前趋关联。在当前箭头领先一个箭头的情况下,相应的 消息有前趋集。此外,每个消息都有与激活进入箭头相应的消息关联的激励器。 过程性顺序图
61
SJ/T XXXX.1 - XXXX
在过程性顺序图中(带有控制中心和调用),在相同生命线上的顺序箭头映射为服从相 应消息间的前驱关联的激励。到控制中心的区域头部的箭头建立嵌套激活。箭头映射为遵从 带有分发动作(调用动作)的消息的激励。激励拥有发送者对象和接收者对象,以及为调用 和对要被调用的目标操作的引用提供的参数对象。对操作的参数求值的表达式是在连接到消 息的调用动作上的参数表达式,而发送者和接收者对象角色由消息的发送者和接收者类目角 色描述。发送者和接收者对象遵从这些类目角色。依附到箭头的所有监护条件和迭代条件成 为依附到消息的动作的再现值。所有离开嵌套激活的箭头映射为带有激活关联的消息,该激 活关联连接到相应激活箭头头部的消息。从激活尾部离开的返回箭头映射到遵从具有如下性 质的激活:
顺序图表示按时间顺序排列的交互。特别是,它利用实例的生命线表示参与交互的实例, 以及实例交换的按时间顺序排列的激励,它不表示对象之间的关联。
顺序图表示带有叠加交互的协作。协作定义了一组对于某些特定的目的有意义的参加者 和关系。对参加者和其关系的识别不具有全局性。这些参加者定义了实例在相互交互时扮演 的角色。因此,协作说明了一组类目角色和关联角色。遵循(或绑定)某个类目的实例扮演 由类目定义的角色,同时两个实例之间的链符合协作中的关联角色。类目角色(关联角色) 定义了一个实例(链)的用法,类目 (关联)定义了实例(链)的所有性质。(看 63 节“协 作”)
8.4.1 语义 激活(控制焦点)表示一个对象直接或者通过从属例程执行一个行为的时期。者之间的控制关系(栈框架)。 8.4.2 表示法
用一个窄长的矩形表示激活,矩形顶端和它的开始时刻对齐,末端和它的结束时刻对齐。 可以用文本标注被执行的动作,依赖于整体风格,或者把标注放在激活符号的旁边,或者放 在图左边的空白处。作为选择,进入的箭头可以指示动作,在这样的情况下,在激活本身上 可以忽略动作。在程序的控制流中,激活符号的顶端画在进入的箭头的尖端(开始该动作的 那个箭头),底端画在返回的箭头的尾部。
在协作的上下文中定义交互。交互说明了角色之间通讯的模式。更精确的说,它包含了 一组部分有序的消息,每个消息说明了一次通讯(也即,发送什么信号和调用什么操作)以 及发送者和接收者分别扮演的角色。
在形式上顺序图可以有些轻微差别,分别用于不同的目的,例如关注执行控制或并发。 顺序图可以表现为一般形式(描述了所有可能序列)和实例形式(描述一个符合一般形式的 实际的序列)。在没有循环和分支的情况下,这两种形式是同构的。
59
SJ/T XXXX.1 - XXXX
8.2.3 表示选项 生命线的水平顺序是任意的。通常调用箭头在一页中被安排在同一个方向,但这也经常
是不可能的,并且这种顺序并不表达信息。 可以交换轴,所以时间维可以水平向右进行而不同的对象用水平的线表示。 可以把各种标签(例如,计时约束,对活动中的行为描述等)显示在页的边缘或在它们
8 顺序图
SJ/T XXXX.1 - XXXX
8.1 交互图的种类
实例之间交互的模式由交互图来表达。基于同样的由交互指定的基础信息,交互图分成 两种形式,但每种形式强调了同一个交互的不同方面。这两种形式是顺序图和协作图。顺序 图说明了激励的精确顺序,更适用于实时的详细说明和复杂的场景。协作图说明了实例之间 的关系,更适用于理解对给定实例的所有影响和过程设计。第八部分详细地描述了协作图。 应当与本部分一同阅读那一部分,因为它们之间有很多共同之处。
在图的框架内指向对象符号的箭头映射为由创建动作分发的激励(即激励遵循与创建动 作相关的交互内的消息)。解释是由分发激励创建对象,对象遵循由消息指定的接收角色。 在创建对象后,它可以立即和其它对象交互。这暗示着对象的创建方法(构造器和初始程序) 分法这些激励。如果对象终结符号(“X”)是箭头的目标,那么箭头映射为引起接收对象被 转移的激励。激励遵循在具有附加到消息的销毁动作的交互图中的消息。如果对象终结符号 出现在没有进入箭头的图中,它映射为终结动作。
在顺序图中,每个带有生命线的对象框映射为协作中的遵循类目角色的对象。名称域映 射为对象的名称,角色名映射为类目角色名,类域映射为是类目角色的基类目的类目名。在 顺序图中不显示角色间的关联。必须从补充的协作图或通过其它方式在模型中获得它们。消 息箭头映射为与发送对象和接收对象连接的激励。激励遵循对应着箭头连接的两个对象生命 线的类目角色之间的消息。用于激励的通讯的链扮演由将消息连接起来的关联角色指定的角 色。除非能从补充的协作图或通过其它方式决定正确的链,否则由于缺乏完整信息,激励是 不依附链的(模型不完整),或它依附任意的链或实例间虚设链,这样的实例遵循由两个类 目角色暗示的关联。被调用的操作名或被发送的信号名映射为由连接消息的动作联系的操作 或信号的名称。对显示激励的参数有不同的选择。如果显示被作为参数传递的对实际实例的 引用,就把它们映射为激励的参数。如果显示参数表达式,就把它们映射为与分发动作相关 的动作参数。最后,如果参数的类型和操作或信号的名称一起显示,就把它们分别映射为操 作的参数类型或信号的属性类型。在箭头尾端的定时标记映射为相应消息的名称。在图中的 约束映射为整个交互上的约束。