顺序图的建模步骤
软件工程---交互建模之交互图,顺序图与协作图
![软件工程---交互建模之交互图,顺序图与协作图](https://img.taocdn.com/s3/m/7962da7e67ec102de2bd898f.png)
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):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
UML报告四-顺序图建模
![UML报告四-顺序图建模](https://img.taocdn.com/s3/m/6ba5cc9af18583d048645918.png)
天津理工大学
计算机与通信工程学院
实验报告
2013 至2014 学年第二学期
课程名称对象设计与建模
学号学生姓名年级2011计算机
专业
教学班号1实验地点7-215(合作)
实验时间2014年月日第节至月日第节主讲教师
辅导教师
按F5,将上面的Sequence 框图转换成Collaboration 框图。
如图所示。
附录(可包括源程序清单或其它说明)
心得体会
通过这样一步一步的完成,并且将顺序图转化为协作图,我对顺序图的建模有了更深的了解。
UML顺序图一般用于:确认和丰富一个使用情境的逻辑。
一个使用情境就是系统潜在的使用方式的描述,也就是它的名称所要描述的。
一个使用情境的逻辑可能是一个用例的一部分,或是一条备选线路;一个贯穿单个用例的完整流程,例如动作基本过程的逻辑描述,或是动作的基本过程的一部分再加上一个或多个的备用情境的逻辑描述。
或是包含在几个用例中的流程。
顺序图的建模步骤
![顺序图的建模步骤](https://img.taocdn.com/s3/m/7f38fd58842458fb770bf78a6529647d26283453.png)
顺序图的建模步骤1.创建和删除顺序图1.1 创建顺序图新建一个顺序图的方式有两种:1.1.1 在逻辑视图中增加顺序图1)一般情况下,顺序图属于系统的逻辑模型,因此可以使用“Logical View”的右键菜单——〉“New”——〉“Sequence Diagram”,如下图所示:然后输入顺序图的名称,如下图所示:接着双击新增的顺序图名称,开始输入顺序图,如下图所示:1.1.2 在用例视图中增加顺序图顺序图主要是用于对用例的描述,在此种目的下新增顺序图的方式也是有两种:2.1)直接在“Use Case View”下的相应用例上通过右键菜单——〉“New”——〉“Sequence Diagram”菜单项新建一个顺序图,如下图所示:输入顺序图的名称,如下图所示:输入完顺序图的名称后,双击此顺序图的名称开始输入顺序图的内容。
2.2)在用例图中使用用例的属性窗口来新增顺序图。
如下图所示,在用例“浏览课件”的“Specification”属性窗口中的“Diagrams”项目下,通过右键菜单——〉“Insert Sequence Diagram”,输入顺序图的名称,如下图所示:双击此顺序图名称,进入顺序图的编辑界面。
1.2 删除顺序图不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),删除顺序图的方式都是一样的。
都是选中需要删除的顺序图,右键菜单——〉“Delete”,即可直接删除,如下图所示。
注意,在Rational Rose2003环境下,所有的删除操作都是没有提示的。
1.3 修改顺序图的名称不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),修改顺序图名称的方式都是一样的。
都是选中需要修改名称的顺序图,右键菜单——〉“Rename”,如下图所示:2.增加和删除对象2.1 增加对象在顺序图中,增加对象的方式主要有两种:2.1.1 使用原有的模型元素作为顺序图的对象使用拖放的方式把原有的模型元素作为顺序图的对象,如下图所示:注意:可以被拖放的模型元素有参与者(Actor)和类(Class)这两种模型元素。
UML九种建模图--顺序图
![UML九种建模图--顺序图](https://img.taocdn.com/s3/m/83547471dcccda38376baf1ffc4ffe473368fdd8.png)
UML九种建模图--顺序图概述顺序图是⼀种交互图(interaction diagram).交互图展现了⼀种交互,它由⼀组对象或参与者以及它们之间可能发送的消息构成。
交互图专注于系统的动态视图。
顺序图是强调消息的时间次序的交互图。
组成顺序图主要有4个标记符:对象、⽣命线、消息和激活。
对象三种表⽰⽅法1.包括对象名和类名,2、只有类名3.只有对象名⽣命线⽣命线⽤于描述对象的存在周期,对象下⽅的虚线就是该对象的⽣命线。
激活控制焦点是指活动者或对象处于执⾏状态的时间段消息消息⽤于描述对象间交互的⽅式及内容。
消息分为四种:同步消息、异步消息、返回消息、⾃关联消息1.同步消息:⼀个对象向另⼀个对象发出同步消息后,将处于阻塞状态,⼀直等到另⼀个对象的回应表⽰⽅式:2.异步消息:⼀个对象向另⼀个对象发出异步消息后,这个对象可以进⾏其他的操作,不需要等到另⼀个对象的响应表⽰⽅式:3.返回消息:同步消息的返回消息表⽰⽅式:4.⾃关联消息:⽤来描述对象内部函数的互相调⽤表⽰⽅式:还有顺序图中对于流程控制的模块:复合⽚段复合⽚段有多种,在此主要介绍⼀下⼏种:条件判断、可选、循环、同步1.条件判断:⽤于描述代码中if…else…这种结构标记为“alt”例如:2.可选:是⼀种特殊的“条件判断”,它只是⼀个if,没有else if或else 可选的标记为:opt3.循环:是指代码中的for、while之类的语句块循环的标记为:loop例如:下图中[m,n]是指⾄少执⾏m次,最多执⾏n次4.同步:⽤于描述多线程的情况同步的标记是:par画顺序图的步骤:1. 确定交互的范围2. 确定参与交互的活动者与对象3. 确定活动者、对象的⽣存周期4. 确定交互中产⽣的消息5. 细化消息的内容。
第十章时序图(顺序图)
![第十章时序图(顺序图)](https://img.taocdn.com/s3/m/2a488355a417866fb84a8e83.png)
第十章 时序图
饮料销售机
(2)钱币记录仪的主要功能是: ①从前端获取顾客输入的信息(包括现金和饮 料选购); ②更新现金和饮料存储; ③将用户投入的现金或找回的零钱发送到前端。
饮料销售机
第十章 时序图
(3)分配器的主要功能是: ①检查用户所选饮料是否有存货; ②分发饮料给顾客。 买饮料的顺序是: a)顾客从前端投入钱币,选择所需要的饮料; b)钱币到达钱币记录仪,记录仪通知分配器检查 饮料存货情况; c)若有存货,记录仪更新自己的存储,并通知分 配器发饮料到机器前端。
一组对象(对象名和类名) 对象生命线(时间轴) 对象被激发(对象的活跃期) 对象间的通信(消息)
第十章 时序图
二. 时序图样式和元素
消息 对象
生命线
被激活期
第十章 时序图
二. 时序图样式和元素
●
① 对象及命名
:类名 :对象名
对象名:类名
第十章 时序图
二. 时序图样式和元素
① 对象的命名
② 生命线 表示对象存在的时间,对象下面一条虚线表示。
返回消息
第十章 时序图
三. 消息 消息:对象之间传输的信息。消息有以下类型: ④阻止消息 阻止消息指消息发送者发出消息给接收者,如果接收 者无法立即接收这个消息,则发送者放弃这个消息。
阻止消息
第十章 时序图
三. 消息 消息:对象之间传输的信息。消息有以下类型:
⑤超时消息 超时消息指消息发送者发出消息给接收者,并按 指定时间等待,如果接收者无法在指定时间内接收这 个消息,则发送者放弃这个消息。
②异步消息 异步消息的发送者通过消息把信号传递给接收者, 然后继续自己活动,不等待接收者返回消息或控制。
异步消息
软件工程顺序图
![软件工程顺序图](https://img.taocdn.com/s3/m/e131395c02d8ce2f0066f5335a8102d277a26147.png)
消息从活动对象生命线到接受对 象生命线旳箭头表达。箭头以时间 顺序在图中从上到下排列。箭头上 面标识要发送旳消息,如下图所示。
把参加者表达为活动对象
旳建模能够阐明参加者怎样 与系统交互,以及系统怎样 与顾客交互。参加者能够调 用对象,对象也能够告知参 加者,如下图所示。
四、 怎样使用消息进行通信
消息是顺序图活动对象之间通信旳惟一 方式。UML中消息使用了某些简介旳标识符。
消息能够包括条件以便限制它们只有满 足条件时才干发送。条件显示在消息名称上 面旳方括号中,如下图所示:
在UML中,总共有4种类型旳消 息,如下图所示。
到目前为止只看到了一种消息, 即简朴消息(flat message)
旳操作统计下来,以供后来查询。最 终,Engine 直接将成果返回给 ProcessMonitor,由ProcessMonitor将 成果包装,显示给顾客。
六、学习怎样建模顺序图
创建顺序图包括四项任务: • 1)拟定需要建模旳工作流。 • 2)从左到右布置对象。 • 3)添加消息和条件以便创建每
一种工作流。 • 4)绘制总图以便连接各个分图。
2.布置对象
• 建模顺序图旳下一步是从左 到右布置全部旳参加者和对 象,包括要添加消息旳对象 生命线。
3.添加消息和条件
接下来,对每一种工作流 作为独立旳顺序图建模。从基 本旳工作流开始,它是没有犯 错条件,而且需要至少决策旳 工作流。在本例中,基本工作 流是教师成功地检验某个学生 旳分数。如下图所示。
1. 同步消息
同步消息(synchronous message)代表一种操 作调用旳控制流。同步消息旳发送者把控制 传递给消息旳接受者。然后暂停活动,等待 消息接受者旳应答,收到应答后才继续自己 旳操作。
StarUML顺序图建模
![StarUML顺序图建模](https://img.taocdn.com/s3/m/7befd618866fb84ae45c8dac.png)
operator改为opt,写入判断条件
StarUML顺序图建模
循环片段(loop)
选择Combined Fragment,将
operator改为opt,可写入循环条件
StarUML顺序图建模
框图
简化顺序图复杂度 利于任务和模块分割
sd表示பைடு நூலகம்图定义
ref表示框图引用
框图可以嵌套
StarUML顺序图建模
框图定义
StarUML顺序图建模
框图引用
StarUML顺序图建模
框图嵌套
StarUML顺序图建模
参数
显示序列顺序
• 勾选后显示
消息格式
• NONE:不显示参数 • TYPEONLY:只显示类型,包括返回值
• NAMEONLY:只显示参数名称
• NAMEANDTYPE:显示参数和参数类型
StarUML顺序图建模
创建对象与类的关联
StarUML顺序图建模
消息 创建 同步调用
异步调用
自调用
返回
销毁
StarUML顺序图建模
消息属性设置
StarUML顺序图建模
交互片段
序号 1 alt 图框操作符 含义 选择性的片段,多条件的分支;用虚 线分割,每区域设置一个条件,代表 一个分支 满足条件则执行分支 循环,表示该片段执行多次 并行执行的片段
StarUML顺序图建模
组成 参与者(Actor) 对象(Object)
生命线(LifeLine)
控制焦点(Focus Of Control)
消息(Message)
交互片段(Interaction Frame)
框图(Frame)
顺序图建模_软件工程_[共2页]
![顺序图建模_软件工程_[共2页]](https://img.taocdn.com/s3/m/204cbc385ef7ba0d4b733bb3.png)
第5章 用例建模(1)仔细评价需求收集阶段所编写的各种用例(use cases),以充分理解系统中的各种交互 序列。
(2)标识出驱动这些交互序列的各种事件,同时要理解这些事件如何与特定的对象发生关系。
(3)为每一个用例建立事件跟踪图。
(4)为每一个对象建立状态转换图。
(5)复查行为模型以验证其准确性和一致性,必要时返回到上一阶段修改对象模型。
5.4.1 顺序图建模在使用 UML 的过程中,顺序图往往是和用例建模绑定使用的。
前面提到,可以使用用例图来表达单个情景实例的行为,也就是说,每一个用例的交互过程都对应一个顺序图。
顺序图能够很清楚地表达对象间是如何协作完成用例所描述的那些交互功能的。
顺序图表示的是,为完成用例而在系统边界输入、输出的数据以及消息。
当然,顺序图也可以推进到系统的内部,表示系统内部对象间的消息传递。
在用例建模期间,经常会使用顺序图来表示参与者和系统在系统边界发生的交互活动。
随着设计活动的深入,在已经有了系统内部类的结构和对象之间的交互行为的设计之后,再用顺序图进一步丰富系统内部对象之间的交互活动的展开。
顺序图作为交互图的一种,是对系统的执行过程中的交互活动场景进行建模的方法,是最常用的 UML 图形化方法之一。
顺序图按时间的次序,表示对象之间的消息,指出有哪些对象参与了交互以及它们之间消息传递的序列。
顺序图的建模元素主要包括对象、生命线、控制焦点和消息。
(1)对象及其生命线。
在顺序图建模元素中,最重要的就是对象和它的生命线。
在顺序图中,主要刻画对象是以何种角色参与到交互场景中来的,无论它是人、物,还是其他的系统以及子系统。
对象的命名有图 5-17 所示的三种方式。
方框中标明的就是对象的不同的类别。
① 第一种(object)是完整命名的方法,语法如下:<对象名> :<类名>② 第二种(anonymous object)是所谓的匿名对象的表示方法,即在“:”后面写上 类名,而不给出具体的对象名。
使用Enterprise Architect进行UML建模-6-顺序图
![使用Enterprise Architect进行UML建模-6-顺序图](https://img.taocdn.com/s3/m/b12373214b35eefdc8d333f2.png)
顺序图
逻辑视图 运行视图
需求用例 开发视图 部署视图
在经典的4+1模型视图中, 类图主要在运行视图中 使用。
顺序图
顺序图主要与捕捉系统各组成部分之间的 交互的次序有关。 使用顺序图,可以描述执行特定用例时, 会触发哪些交互,以及这些交互以何种次 序发生。 顺序图显示许多相关的交互的其他信息, 但它的长处是表现交互的次序。
顺序图的主要元素
参与者 时间 事件、信号与消息
嵌套消息 消息箭头
同步消息 异步消息 返回消息 创建消息 销毁消息
活动条
顺序图的使用
描述用例
描述顶层用例:描述用例与用例之间的调用次 序。 描述单个用例:描述用例的使用场景。
顺序片段(sequence fragment)(UML2.0)
主要用来捕捉内部细节、显示复杂的交互。
类似C#中的Break语句,对条件成立跳出任何一个交互。(一般是 Loop) If(…) … Else …
Opt Neg Par region
没有Else的if:If(…) … 声明一些不执行的交互。例如,SqlConnection在ExecuteReader时, 不能执行去执行另外一个SQL语句。 申明此片段内的交互能顺利的并行执行,不需考虑线程与锁定。 声明一些关键的必须同步或锁定的交互。
类型 参数 用途
Ref Assert Loop Min times,times,max[ guard_condition]
分解顺序图,类似用例的Include关系 断言,对其中的所有操作都必须成功,否则声明无效,并抛出异常。 类似C#中的For循环语句,循环指定次数的调用。
Break Alt [guard_condition 1] … [guard_condition 2] … [else] [guard_condition]
UML建模工具软件StarUML从入门到精通——如何应用StarUML创建UML顺序图的应用示例
![UML建模工具软件StarUML从入门到精通——如何应用StarUML创建UML顺序图的应用示例](https://img.taocdn.com/s3/m/a67804e3941ea76e58fa0499.png)
(4)最终的结果示图
(3)顺序图反映了参与者与系统之间的交互,以销售为例,参 与者为收银员,场景中对象有登录界面以验证权限、库存查询接 口,用以判断库存中是否有数据、销售处理接口,其结果是从库 存中减掉对应数量的图书。 如右示图为某个 项目中的图书销售顺 序图示例。
4、顺序图中的各个坐标的含义
(1)序列图中的纵向维代表时间,按时间先后依次向下排序。 (2)横向维则代表不同的主角或对象
(3)业务层和数据访问层之间的checkUserLogin消息
(4)最后的结果示图如下
12、设置返回消息及命名返回Fra bibliotek消息名称(1)数据访问层向业务处理层返回userInfoBean对象
(2)业务处理层向控制层返回boolean布尔状态量
(3)控制层向表示层已经参与者返回“成功或失败”的提示信 息
9、将顺序图中的各个组件元素中的“LinelifeX”的生命 线提示文字隐藏以保证图的简洁
(1)只需要选中组件元素,然后在右边的“Properties”属性 面板中的Name栏中删除相关的“LinelifeX”的生命线提示文字。
(2)最后的处理结果示图如下
10、在参与者和表示层组件之间设置发送 的消息
(1)产生消息的工具按钮 (2)添加发送消息
(3)设置消息的名称(目标类中的方法的名称),本示例为 doSubmit()方法
(4)将产生出下面的结果状态
11、继续完成其它层组件之间的发送消息的设置定义
(1)表示层和控 制层之间的 proccess消息
(2)控制层和业务层之间的executeLogin消息
2、顺序图主要的作用
(1)按时间顺序对控制流建模,主要用于对用例中的控制流的 建模——体现用例的实现过程。 (2)它显示出随着时间的变化对象之间是如何通信的,同时也 清楚地表示在实现某个用例时所涉及的各个类。
使用starUML一步一步画顺序图
![使用starUML一步一步画顺序图](https://img.taocdn.com/s3/m/d75cd21491c69ec3d5bbfd0a79563c1ec5dad7a3.png)
使⽤starUML⼀步⼀步画顺序图顺序图:是UML中能表现出⼀个过程中各个详细步骤的模型图,过程可以理解为⼀个功能的执⾏过程。
下⾯我们以⼀个简单的影院管理系统中售票功能为例来⼀步⼀步完成顺序图的构建。
建模⼯具:starUML版本:5.0.2.1570(新版本下⾯也适⽤)1:⾸先确定功能的主功能场景如下所⽰。
(1)顾客向售票员提供剧⽬名称,和场次要求(时间)。
(2)售票员查询⽤户提供的剧⽬所在演出厅票务和位置信息。
(3)系统显⽰剧⽬信息和演出厅信息。
(4)顾客查看票价和演出厅所剩位置信息,并提供⾃⼰想要的位置。
(5)售票员选择位置,并确认。
(6)系统显⽰座位信息和交易⾦额。
(7)⽤户选择⽀付⽅式,并⽀付。
(8)系统更新演出厅信息,⽣成交易票据并将交易信息发送到外部的账务系统。
(9)系统打印票据。
(10)顾客携带票据离开。
2:找出系统中的参与者顾客系统售票员数据库3:建⽴项⽬打开starUML,选择默认⼯程然后新建⽴顺序图:在项⽬的最右边栏:Analysis Model -> ADD Diagram -> Sequence Diagram之后项⽬的最左端如下:select :选中某个元素object:对象Stimulus:对象与对象间消息SelfStimulus:对象间⾃调⽤的消息Combined Fragment:结合⽚段,⽐如循环⽚段等,分⽀⽚段Interaction Operand:交互操作Frame :框架,主题(图最外⾯的边界)4:加⼊相应元素,如下图所⽰,最外⾯添加的是⼀个Frame。
要是想更改Frame或者Object的名称,我们在最右边属性修改即可。
5:添加消息的过程如下所⽰:⿏标左击 Stimulus,然后松开,之后将⿏标移⾄源Object⽣命线上,⿏标左击不松开,拉⾄⽬的Object上即可。
6:按照主功能场景画出的图⼀步步画出来的图就是这样啦:ps:。
面向对象分析与设计课件第6章 顺序图与通信图建模
![面向对象分析与设计课件第6章 顺序图与通信图建模](https://img.taocdn.com/s3/m/e7cb38a502768e9950e73899.png)
Ad d (Ch ro m o so m e )
loop [nt So rtByAcco m m o d a ti o n () Cro ssOve r(Ch ro m o so m e )
m u ta ti o n ()
CanbeEnded(int): Boolean
图6-1 顺序图中常见的对象
6.1.2 生命线(lifeline)
生命线是从对象图标向下出来的延伸的一条直线,也是和对象紧密联系在 一起的一种模型元素,用于表示对象的生存期或生存期内的某个时间片段。
事实上,在顺序图中,对象和生命线是不可分割的同一个元素,生命线是 对象的一个组成部分,代表了对象的整个或部分生命期。顺序图中即不存在 没有生命线的对象,也不存在没有对象的生命线。当然这并不排除生命线分 支的概念。
除了图形符号,UML还使用消息表达式的方式来描述消息。 按照对象间交互的形式,可以把消息分成方法调用、发送信号、创建实例 和销毁对象等多种形式。其中,最常用的形式就是对象间的方法调用。
6.1.4 消息(Message)
描述方法调用或发送信号的消息的语法格式定义如下: [returnvalue=] message_name (arguments) : type_of_return_value return_value:是消息的可选部分,表示存储消息返回值的变量。这个变 量可以是发送者的一个属性、整个交互的全局属性、或者是某个拥有交互的 类的属性。 message_name:表示消息名称,可以是接收者的某个方法名或发送的信号 名等。 arguments:表示消息参数列表,是一个用逗号分隔的若干个参数构成的 列表,其中每个参数都可以是参数名或参数值。 type_of_return_value:返回值类型。
Rational Rose画顺序图
![Rational Rose画顺序图](https://img.taocdn.com/s3/m/8bffdd5727284b73f3425004.png)
实验三创建顺序图一、实验目的1.理解顺序图的基本概念;2. 掌握顺序图的组成要素及含义;3. 掌握在Rational Rose中绘制顺序图的操作方法。
二、预备知识顺序图(序列图)sequence diagram创建序列图(图3-1)在浏览器内的Logic 视图中单击鼠标右键,选择new→sequence diagram就新建了一张序列图。
也可以在浏览器中use case视图中选择某个用例,然后右击这个用例,选择new→sequence diagram。
图3-1:创建序列图在序列图中放置参与者和对象(图3-2)在序列图中的主要元素之一就是对象,相似的对象可以被抽象为一个类。
序列图中的每个对象代表了某个类的某一实例。
(1)把用例图中的该用例涉及的所有参与者拖到sequence图中。
(2)选择工具栏中的object按钮,单击框图增加对象。
可以选择创建已有类的对象,也可以在浏览器中新建一个类,再创建新的类的对象。
双击对象,在弹出的对话框中的“class”里确定该对象所属的类。
(3)对象命名:对象可以命名也可没名字。
双击对象,在弹出的对话框中的“name”里给对象取名。
(4)如果是多重对象,在图3-2的下方,将复选框【Multiple insta】选中。
图3-2:放置参与者和对象说明对象之间的消息(图3-3)(1)选择message工具栏按钮。
(2)单击启动消息的参与者或对象,把消息拖到目标对象和参与者。
(3)命名消息。
双击消息,在对话框中“General”里的“name”中输入消息名称。
(4)删除消息:选中消息线,右击,选择delete操作。
(5)显示或取消消息编号。
消息编号在顺序图中是可选的,选择菜单栏的Tools----Options菜单项,在出现的对话框中选择Diagram选项卡,将“Sequence numbering”复选框勾选,就可以显示消息编号;如果不勾选,消息编号不会显示在时序图中。
图3-3:对象之间的消息三、实验内容题目一:画出打印机工作的顺序图(线性序列)需求:用户打印文件,客户端计算机向打印服务器发送打印命令,打印机如果空闲,则直接打印,否则,将打印消息存储到打印队列中。
顺序图
![顺序图](https://img.taocdn.com/s3/m/cdbf5f6d1eb91a37f1115cfb.png)
顺序图1.概述顺序图(Sequence Diagram)是交互图的一种,它按照交互发生的时间顺序,利用对象的“生命线”和消息描述对象之间的交互。
通常用来描述一个用例的行为,完成对系统的动态行为建模。
顺序图主要目的是定义事件序列,产生一些希望的输出,其重点不是消息本身,而是消息产生的顺序。
一个典型的顺序图如图1所示,图1. 顺序图2.基本元素顺序图的基本元素有生命线、消息、活动者、对象、组合片断。
2.1 生命线(Lifeline)一条生命线代表着顺序图中的一个参与者,表示建模的角色或对象实例。
在UML中,生命线画作一个方格,一条虚线从上而下,通过底部边界的中心,生命线对象的名字放置在方格里,如图2所示,图2. 生命线(1)通常,顺序图属于某个用例时,顺序图中会包含有参与者的生命线。
边界类、控制类、实体类都可以拥有生命线,如图3所示,图3. 生命线(2)2.2消息(Messages)消息是对象之间的一种通信,它可以传递信息并期望相关的动作被执行。
顺序图的第一个消息总是从顶端开始,并且一般位于图的左边。
然后继发的消息加入图中,稍微比前面的消息低些。
在UML中,一个对象传递一个消息给另一个对象,画一条线指向接收对象,包括一个实心箭头(表示同步调用操作)或一个棍形箭头(表示一个异步信号)。
消息或方法名字放置在带箭头的线上面。
如图4所示,第一个消息是一个同步消息,隐式返回。
第二个消息表示异步,第三个消息即是异步消息的返回的消息。
图4. 消息生命线上的瘦矩形表示消息执行发生或一个控制焦点的激活,表明对象在某一时间点开始执行活动。
在图4中,有三个执行发生。
调用本身的消息可用于表示一个操作的递归调用,或者同一对象中一个方法对另一个方法的调用,如图5所示,图5. 调用自身消息2.3约束(Constraints)当为对象的交互建模时,有时候,必须满足一个条件,消息才会传递给对象。
约束在各个不同的UML图中,用于控制流。
跟我学UML建模工具StarUML(第11部分)——应用StarUML创建顺序图的创建示例
![跟我学UML建模工具StarUML(第11部分)——应用StarUML创建顺序图的创建示例](https://img.taocdn.com/s3/m/ec2e8b0ea200a6c30c22590102020740be1ecd08.png)
跟我学UML建模⼯具StarUML(第11部分)——应⽤StarUML创建顺序图的创建⽰例1.1跟我学UML建模⼯具StarUML(第11部分)——应⽤StarUML创建顺序图的创建⽰例1.1.1UML动态建模相关技术及应⽤1、动态建模相关的技术(1)在软件系统静态模型的基础上建⽴出相应的动态模型在建⽴出软件系统的静态模型基础上,软件系统的分析和设计⼈员接下来就需要分析和设计软件系统的动态结构,并且建⽴出相应的动态模型。
因为软件系统的动态模型描述了软件系统随时间变化的⾏为,这些⾏为是⽤从静态模型视图中抽取出的系统瞬间值的变化来描述的。
(2)动态模型的主要内容软件系统的动态模型主要包括UML顺序图、协作图、状态图、活动图,这些模型图便于分析软件系统的功能⾏为、印证和修改软件系统的静态结构,满⾜软件系统⽤户的功能和⾮功能性的需求,最终达到满⾜软件系统的功能⽬标。
2、交互图----可以对共同⼯作的对象群体的⾏为建模(1)交互图——主要包括协作图和顺序图交互图主要⽤于定义软件系统如何实现相关功能的;因为它们能够逐步地显⽰⽤例的主要流程,这包括:在流程中需要什么对象、对象相互发送什么消息、什么⾓⾊启动流程、消息按什么时序发送等⽅⾯的信息。
(2)交互图中的“交互”含义它描述了⼀个交互,由⼀组对象和它们之间的关系所组成,这包括在对象间传递的信息。
(3)顺序图和协作图的不同点1)时序图(顺序图)它强调消息时间顺序的交互图,描述类系统中类和类之间的交互,将交互建模成消息交换。
下图为某个银⾏项⽬中⽤户取钱的顺序图⽰例:2)协作图和时序图⼀样,协作图也显⽰⽤例中特定情形的流程。
但时序图按时间排序,⽽协作图则着重于对象之间的关系。
(4)顺序图和协作图⽰例1)下⾯为⼀个软件系统中的⽤户注册的顺序图2)⽽下⾯则为与前⾯的⽤户注册的顺序图相对应的协作图。
可以看出,协作图与时序图中的信息相同,但协作图显⽰了不同的流视图,在这个框图中,更容易看出对象之间的关系,但对象顺序信息则不够明显。
UML顺序图和协作图
![UML顺序图和协作图](https://img.taocdn.com/s3/m/b365f510240c844769eaeec1.png)
对上述步骤建模的顺序图如下:
: Customer
: Front
: Register
: Dispenser
1: accept(cash,selection) 2: getCustomerInput(cash,selection)
3: check(selection) 4: yes
5: updateReserve(cash,price)
:ClassA
:ClassB
oper()
返回消息
返回消息表示从过程调用 返回,以虚线箭头表示。
:ClassA
:ClassB
oper()
阻止消息
阻止消息是指消息发送者发出消息给接收者, 若接收者无法立即接收消息,则发送者放弃此 消息。Rose中用折回的箭头表示阻止消息。
:ClassA
:ClassB
场景描述
曹操 :刘备
:孔明
求战 请拟策略
:关羽
:张飞 孙权
请防守荆州
顺序图的建模步骤
![顺序图的建模步骤](https://img.taocdn.com/s3/m/3bf49cf95ff7ba0d4a7302768e9951e79b89692c.png)
顺序图的建模步骤1.创建和删除顺序图1.1 创建顺序图新建一个顺序图的方式有两种:1.1.1 在逻辑视图中增加顺序图1)一般情况下,顺序图属于系统的逻辑模型,因此可以使用“Logical View”的右键菜单——〉“New”——〉“Sequence Diagram”,如下图所示:然后输入顺序图的名称,如下图所示:接着双击新增的顺序图名称,开始输入顺序图,如下图所示:1.1.2 在用例视图中增加顺序图顺序图主要是用于对用例的描述,在此种目的下新增顺序图的方式也是有两种:2.1)直接在“Use Case View”下的相应用例上通过右键菜单——〉“New”——〉“Sequence Diagram”菜单项新建一个顺序图,如下图所示:输入顺序图的名称,如下图所示:输入完顺序图的名称后,双击此顺序图的名称开始输入顺序图的内容。
2.2)在用例图中使用用例的属性窗口来新增顺序图。
如下图所示,在用例“浏览课件”的“Specification”属性窗口中的“Diagrams”项目下,通过右键菜单——〉“Insert Sequence Diagram”,输入顺序图的名称,如下图所示:双击此顺序图名称,进入顺序图的编辑界面。
1.2 删除顺序图不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),删除顺序图的方式都是一样的。
都是选中需要删除的顺序图,右键菜单——〉“Delete”,即可直接删除,如下图所示。
注意,在Rational Rose2003环境下,所有的删除操作都是没有提示的。
1.3 修改顺序图的名称不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),修改顺序图名称的方式都是一样的。
都是选中需要修改名称的顺序图,右键菜单——〉“Rename”,如下图所示:2.增加和删除对象2.1 增加对象在顺序图中,增加对象的方式主要有两种:2.1.1 使用原有的模型元素作为顺序图的对象使用拖放的方式把原有的模型元素作为顺序图的对象,如下图所示:注意:可以被拖放的模型元素有参与者(Actor)和类(Class)这两种模型元素。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
顺序图的建模步骤
1.创建和删除顺序图
1.1 创建顺序图
新建一个顺序图的方式有两种:
1.1.1 在逻辑视图中增加顺序图
1)一般情况下,顺序图属于系统的逻辑模型,因此可以使用“Logical View”的右键菜单——〉“New”——〉“Sequence Diagram”,如下图所示:
然后输入顺序图的名称,如下图所示:
接着双击新增的顺序图名称,开始输入顺序图,如下图所示:
1.1.2 在用例视图中增加顺序图
顺序图主要是用于对用例的描述,在此种目的下新增顺序图的方式也是有两种:
2.1)直接在“Use Case View”下的相应用例上通过右键菜单——〉“New”——〉“Sequence Diagram”菜单项新建一个顺序图,如下图所示:
输入顺序图的名称,如下图所示:
输入完顺序图的名称后,双击此顺序图的名称开始输入顺序图的内容。
2.2)在用例图中使用用例的属性窗口来新增顺序图。
如下图所示,在用例“浏览课件”的“Specification”属性窗口中的“Diagrams”项目下,通过右键菜单——〉“Insert Sequence Diagram”,
输入顺序图的名称,如下图所示:
双击此顺序图名称,进入顺序图的编辑界面。
1.2 删除顺序图
不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),删除顺序图的方式都是一样的。
都是选中需要删除的顺序图,右键菜单——〉“Delete”,即可直接删除,如下图所示。
注意,在Rational Rose2003环境下,所有的删除操作都是没有提示的。
1.3 修改顺序图的名称
不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),修改顺序图名称的方式都是一样的。
都是选中需要修改名称的顺序图,右键菜单——〉“Rename”,如下图所示:
2.增加和删除对象
2.1 增加对象
在顺序图中,增加对象的方式主要有两种:
2.1.1 使用原有的模型元素作为顺序图的对象
使用拖放的方式把原有的模型元素作为顺序图的对象,如下图所示:
注意:可以被拖放的模型元素有参与者(Actor)和类(Class)这两种模型元素。
2.1.2 增加新的顺序图对象
在顺序图的界面中,选择对象(Object)工具,如下图所示:
然后输入对象名称,如下图所示:
2.2 删除对象
删除顺序图中的对象主要有2种方式:
2.2.1 使用右键菜单删除对象
如下图所示,选择需要删除的对象,使用右键菜单——〉“Edit”——〉“Delete from Model”菜单项即可删除该对象。
2.2.2 使用快捷键删除对象
使用快捷键的方式比使用菜单项要简单,选中需要删除的对象,使用Ctrl+D的方式即可删除该对象。
2.3 终结对象在顺序图中的生命
选择对象生命终结符号,如下图所示:
选择需要终止生命的对象的生命线,如下图所示:
3.增加和删除对象间的消息
3.1增加对象间的消息
如下图所示,选择对象消息(Object Message),
按住鼠标左键,从需要发出消息的对象的生命线开始,拖动线段直到接收消息的对象为止,
松开鼠标左键。
入下图所示:
然后输入消息的名称。
还需要设置哪些对象是在交互的过程中被创建的,如下图所示:
在增加对象的消息时,还可以增加发送给对象自己的消息,如下图所示:
3.2 设置消息的不同类型
双击需要设置消息类型的消息,在“Detail”项目中进行消息类型的设置,如下图所示:
一旦消息的类型改变之后,消息的符号也会跟着进行相应的变化。
3.3 删除对象间的消息
与删除对象的方式一样,删除对象消息的方式也是两种,一种是使用右键菜单,另外一种使用Ctrl+D的快捷键方式删除。
使用右键菜单的方式如下:
右键点击需要删除的消息,在弹出的菜单中选择——〉“Edit”——〉“Delete from Model”,如下图所示:
4.设置顺序图的项目属性
设置顺序图的项目属性的方法如下:主菜单——〉“Tools”——〉“Options”,在弹出的窗口中选择“Diagram”标签,如下图所示:。