![UML-6-顺序图_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed1.gif)
![UML-6-顺序图_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed2.gif)
![UML-6-顺序图_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed3.gif)
![UML-6-顺序图_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed4.gif)
![UML-6-顺序图_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed/a25539a1-1832-49ae-b8b8-0bc0ba16e3ed5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、顺序图顺序图Sequence DiagramSequence DiagramUMLUML及建模工具及建模工具第第4 4章章 顺序图顺序图(Sequence Diagram)(Sequence Diagram)v4.1 4.1 基于交互的对象行为建模基于交互的对象行为建模v4.2 4.2 顺序图顺序图v4.3 4.3 顺序图的表示方法顺序图的表示方法v4.4 4.4 案例分析案例分析v4.5 4.5 总结总结4.1 4.1 基于交互的对象行为建模基于交互的对象行为建模v用例实现的第一步是发现用例中的对象,用用例实现的第一步是发现用例中的对象,用例实现的第二步是确定所有对象的应有行为例实现的第二步
2、是确定所有对象的应有行为( (或责任或责任) )v为了确定每个对象的行为,我们首先要分析为了确定每个对象的行为,我们首先要分析用例中对象之间的交互作用用例中对象之间的交互作用 (Interaction)(Interaction): Salesmen: SaleSystem1. createOrder2. fillOrder3. commitOrder4.1 4.1 基于交互的对象行为建模基于交互的对象行为建模v以创建销售订货单为例,我们用以创建销售订货单为例,我们用UMLUML的顺序的顺序图图(Sequence Diagram)(Sequence Diagram)来描述在创建销售订来描述在创建
3、销售订货单用例中对象之间的相互作用关系:货单用例中对象之间的相互作用关系:图4-1 创建销售订货单用例的一个简单的顺序图 4.1 4.1 基于交互的对象行为建模基于交互的对象行为建模v交互图交互图(Interaction Diagram)(Interaction Diagram)为基于交互的为基于交互的对象行为建模,是对象行为建模,是UMLUML用于描述对象之间信用于描述对象之间信息的交互过程的方法,是描述对象间协作关息的交互过程的方法,是描述对象间协作关系的模型系的模型v交互图指出对象如何通过协作来完成用例中交互图指出对象如何通过协作来完成用例中捕获的业务流程捕获的业务流程v交互图中的对象可
4、能代表的是一个子系统、交互图中的对象可能代表的是一个子系统、一个构件或一个类的对象一个构件或一个类的对象4.1 4.1 基于交互的对象行为建模基于交互的对象行为建模vUMLUML有两种表达形式的交互图:有两种表达形式的交互图: 顺序图顺序图(Sequence Diagram)(Sequence Diagram) 通信图通信图(Communication Diagram) (Communication Diagram) v如果想按时间顺序对消息的交互过程建模,如果想按时间顺序对消息的交互过程建模,则使用顺序图,它展示的是按时间顺序发生则使用顺序图,它展示的是按时间顺序发生的消息传送的消息传送v如
5、果想按对象关联对消息的交互过程建模,如果想按对象关联对消息的交互过程建模,则使用通信图,通信图强调的是消息交互传则使用通信图,通信图强调的是消息交互传递中对象之间的关联递中对象之间的关联 4.2 4.2 顺序图顺序图v顺序图用于捕获系统运行中对象之间有顺序顺序图用于捕获系统运行中对象之间有顺序的交互,强调的是消息交互的时间顺序的交互,强调的是消息交互的时间顺序v顺序图描述了对象实现全部或部分系统功能顺序图描述了对象实现全部或部分系统功能的行为模型的行为模型4.2 4.2 顺序图顺序图v顺序图由对象生命线和消息组成顺序图由对象生命线和消息组成 顺序图顺序图 = = 对象生命线对象生命线 + +
6、消息消息 Sequence Diagram = Lifelines + Sequence Diagram = Lifelines + Messages Messages 4.3 4.3 顺序图的表示方法顺序图的表示方法v4.3.1 4.3.1 对象生命线对象生命线v4.3.2 4.3.2 活动条活动条v4.3.3 4.3.3 消息消息v4.3.4 4.3.4 交互框交互框4.3.1 4.3.1 对象生命线对象生命线v每个参与者及系统运行中的对象都用一条垂每个参与者及系统运行中的对象都用一条垂直的生命线直的生命线(Lifelines)(Lifelines)表示表示v生命线展示了一个对象在交互过程
7、中的生命生命线展示了一个对象在交互过程中的生命期限,表示一个对象在系统表现一个功能时期限,表示一个对象在系统表现一个功能时的存在时间长度的存在时间长度4.3.1 4.3.1 对象生命线对象生命线vUMLUML用矩形框和虚线表示对象及生命线,矩用矩形框和虚线表示对象及生命线,矩形框中添加对象的名称,虚线展示了参与交形框中添加对象的名称,虚线展示了参与交互的对象的生命长度互的对象的生命长度 图4-2 生命线的表示方法 4.3.1 4.3.1 对象生命线对象生命线v生命线的描述标签可以使用下面的语法:生命线的描述标签可以使用下面的语法:对象名对象名 选择器选择器 : : 类名类名 ref decom
8、positionref decompositionobject_name selector : Class_name ref object_name selector : Class_name ref decompositiondecomposition: Sales1: Salesalesi: Salesales: Sale ref ComSale图4-3 4-4 4-5 4-6 生命线的不同表示方法 4.3.1 4.3.1 对象生命线对象生命线未命名的未命名的对象对象命名为命名为s1s1的的对象对象命名为命名为salessales的对象的对象数组的第数组的第i i个元素个元素salessa
9、les对象消息处理对象消息处理引用了其他顺序图引用了其他顺序图4.3.2 4.3.2 活动条活动条v活动条活动条(Activation Bar)(Activation Bar)也称为执行发生也称为执行发生(Execution Occurrence)(Execution Occurrence),它用来表示对象,它用来表示对象的某个行为所处的执行状态的某个行为所处的执行状态v活动条用小矩形条表示活动条用小矩形条表示 anOrder : Orderp1 : Product1. getTotalPayment1.1 getPrice图4-7 带活动条的顺序图 4.3.3 4.3.3 消息消息v1. 1
10、. 什么是消息什么是消息 v2. 2. 消息的命名消息的命名 v3. 3. 简单消息、同步消息和异步消息简单消息、同步消息和异步消息 v4. 4. 对象创建消息对象创建消息 v5. 5. 对象销毁消息对象销毁消息v6. 6. 无触发对象和无接收对象消息无触发对象和无接收对象消息 v7. 7. 自我调用消息自我调用消息 v8. 8. 控制信息控制信息 v9. 9. 消息的返回值消息的返回值 1. 1. 什么是消息什么是消息v在面向对象的分析和设计中,对象的行为也在面向对象的分析和设计中,对象的行为也称为消息称为消息(Message)(Message)v通常,当一个对象调用另一个对象中的行为通常,
11、当一个对象调用另一个对象中的行为时,即完成了一次消息传递时,即完成了一次消息传递v顺序图关注生命线间的通信,这些通信就是顺序图关注生命线间的通信,这些通信就是对象发送的消息对象发送的消息vUMLUML用生命线间带有实心箭头的实线表示消用生命线间带有实心箭头的实线表示消息,每条消息从发送对象指向接收对象息,每条消息从发送对象指向接收对象 消息举例消息举例v一个一个OrderOrder对象向一个对象向一个ProductProduct对象对象p1p1发送了发送了消息消息getPricegetPrice,示例源码如下:,示例源码如下:public class Order Product p1;publ
12、ic float getTotalPayment( )sum = sum + p1.getPrice();public class Product public float getPrice( ) attribute = signal_or_message_name (parameter:parameterType) : return_value2. 2. 消息的命名消息的命名v每一个消息都必须命名每一个消息都必须命名v在表达消息的箭头上,我们放置表示消息在表达消息的箭头上,我们放置表示消息名称的标签,其语法如下:名称的标签,其语法如下: 属性属性 = = 信号或消息名信号或消息名( (参数参
13、数: : 参数类型参数类型) : ) : 返回值返回值 消息的例子消息的例子说明说明get()消息的名字是消息的名字是getget,其他信息未知,其他信息未知set(item)消息的名字是消息的名字是setset,有一个参数为,有一个参数为itemitemd = get (id)消息的名字是消息的名字是getget,有一个参数为,有一个参数为id,id, 消息返回值是消息返回值是ididd = get (id1:ItemID, id2:ItemID) :Item消息的名字是消息的名字是getget,它有两个参数,它有两个参数,id1id1和和id2id2,这两,这两个参数都是个参数都是Item
14、IDItemID类型的,消息返回类类型的,消息返回类ItemItem的对象,的对象,该对象被存储在消息调用方的属性该对象被存储在消息调用方的属性d d中中消息的例子消息的例子3. 3. 简单消息、同步消息和异步消简单消息、同步消息和异步消息息v消息分为简单消息消息分为简单消息(Simple Message)(Simple Message)、同步消息、同步消息(Synchronous Message)(Synchronous Message)和异步消息和异步消息(Asynchronous Message)(Asynchronous Message) 简单消息只表示控制如何从一个对象发给另一个简单
15、消息只表示控制如何从一个对象发给另一个对象,并不包含控制的细节对象,并不包含控制的细节 同步意味着阻塞和等待,如果对象同步意味着阻塞和等待,如果对象A A向对象向对象B B发送发送一个消息,对象一个消息,对象A A发出消息后必须等待消息返回,发出消息后必须等待消息返回,只有当对象只有当对象B B处理消息的操作执行完毕后处理消息的操作执行完毕后, , 对象对象A A才可继续执行自己的操作,这样的消息称为同步才可继续执行自己的操作,这样的消息称为同步消息消息 异步意味着非阻塞,如果对象异步意味着非阻塞,如果对象A A向对象向对象B B发送一个发送一个消息,对象消息,对象A A不必等待对象不必等待对
16、象B B执行完这个消息,就执行完这个消息,就可以继续执行自己的下一个行为,这样的消息称可以继续执行自己的下一个行为,这样的消息称为异步消息为异步消息 3. 3. 简单消息、同步消息和异步消简单消息、同步消息和异步消息息vUMLUML用实体箭头表示同步消息,用开放式箭用实体箭头表示同步消息,用开放式箭头表示异步消息头表示异步消息: ProductManagement: ProductsetPrice图4-8 异步消息 v创建对象的消息被称为对象创建消息创建对象的消息被称为对象创建消息(Object (Object Creation Message)Creation Message),表示对象在交
17、互过程中,表示对象在交互过程中被创建,通过构造型被创建,通过构造型来表示来表示: UserManagement: UserAccount1. addNewUser1.1 createUserAccount create 图4-9 使用构造型create表达对象创建消息 4. 4. 对象创建消息对象创建消息: UserManagement: UserAccount1. addNewUser1.1 createUserAccount 图4-10 消息指向对象生命框来表示创建消息 4. 4. 对象创建消息对象创建消息v对象创建消息的示例源码:对象创建消息的示例源码:Public class User
18、Management public void addNewUser( ) UserAccount uc1 = new UserAccount();5. 5. 对象销毁消息对象销毁消息v一个对象可以通过对象销毁消息一个对象可以通过对象销毁消息(Object (Object Destruction Messages)Destruction Messages)销毁另一个对象,销毁另一个对象,它也可以销毁它本身它也可以销毁它本身vUMLUML将构造型将构造型作为消息的标签作为消息的标签来表达对象销毁消息,同时在对象生命线的来表达对象销毁消息,同时在对象生命线的结束部分画一个结束部分画一个“”来表示该对
19、象被销毁来表示该对象被销毁 : UserManagement: UserAccount1. CloseUser1.1 closeUserAccount destroy图4-11 对象销毁消息 5. 5. 对象销毁消息对象销毁消息v无触发对象消息称为无触发对象消息称为found messagefound message, 用活用活动条开始端点上的实心球加箭头来表示,它动条开始端点上的实心球加箭头来表示,它表示消息的发送者没有被详细指明,或者是表示消息的发送者没有被详细指明,或者是一个未知的发送者,或者该消息来自于一个一个未知的发送者,或者该消息来自于一个随机的消息源随机的消息源v无接收对象消息称
20、为无接收对象消息称为lost messagelost message,用箭头,用箭头加实心球来表示,它描述消息的接收者没有加实心球来表示,它描述消息的接收者没有被详细指明,或者是一个未知的接收者,或被详细指明,或者是一个未知的接收者,或者该消息在某一时刻未被收到者该消息在某一时刻未被收到 6. 6. 无触发对象和无接收对象的消无触发对象和无接收对象的消息息: UserManagement: UserAccount1. addNewUser1.1 createUserAccount create1.1.1 getNewID 图4-12 Found和Lost消息 6. 6. 无触发对象和无接收对象
21、的消无触发对象和无接收对象的消息息7. 7. 自我调用消息自我调用消息v自我调用消息表示消息从一个对象发送到它自我调用消息表示消息从一个对象发送到它本身,可以通过活动条的嵌套来表示自我调本身,可以通过活动条的嵌套来表示自我调用消息用消息(Call Self Message) (Call Self Message) v条件控制的一种简单表示法方法条件控制的一种简单表示法方法anOrder : Orderp1 : Product1. getTotalPayment1.1 getPriceprice100 1.2 getDiscount图4-13 自我调用消息 8. 8. 控制信息控制信息v有两种情
22、况可以应用控制信息有两种情况可以应用控制信息(Control (Control Information)Information)表达:表达: 条件条件(Condition)(Condition):仅当条件为真的时候消息才被:仅当条件为真的时候消息才被发送发送 迭代迭代(Iteration)(Iteration):为了接收多次对象消息被发送:为了接收多次对象消息被发送多次多次v语法为:语法为: 表达式表达式 消息标签消息标签 expression message-label expression message-label : HumanResource: SaleDepartment*unti
23、l full addSalesman图4-14表示迭代的控制消息 8. 8. 控制消息控制消息v循环控制的一种简单表示方法:循环控制的一种简单表示方法:9. 9. 消息的返回值消息的返回值v消息的返回值消息的返回值(Return Value)(Return Value)可以表示为:可以表示为: 返回变量返回变量 = = 消息消息( (参数参数) ); returnVar = message (parameter);returnVar = message (parameter);v或者在活动条的结尾应用一个返回消息线或者在活动条的结尾应用一个返回消息线: Order: Product1. get
24、TotalPayment1.1 getPriceprice图4-15消息的返回值 9. 9. 消息的返回值消息的返回值4.5 4.5 总结总结v BoochBooch,RumbaughRumbaugh和和JacobsonJacobson在著作在著作The Unified Modeling The Unified Modeling Language User GuideLanguage User Guide中指出了顺序图的绘制策略,这些策略包括:中指出了顺序图的绘制策略,这些策略包括: 先确定交互发生的语境,即交互是发生在系统中、子系统中、操作先确定交互发生的语境,即交互是发生在系统中、子系统中、操作中、类中还是用例或协作中;中、类中还是用例或协作中; 通过识别对象在交互中扮演的角
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心电图室奖惩制度的制定意见
- 2025年度汽车维修厂汽车尾气排放检测与治理合同
- 金华浙江金华永康市古山镇人民政府工作人员招聘笔试历年参考题库附带答案详解
- 金华2025年浙江金华浦江县县属医疗卫生单位招聘护理等专业人员16人笔试历年参考题库附带答案详解
- 浙江浙江省疾病预防控制中心招聘劳务派遣员工笔试历年参考题库附带答案详解
- 杭州2025年浙江杭州市教育局所属事业单位招聘166人笔试历年参考题库附带答案详解
- 2025年中国双层床架市场调查研究报告
- 2025年中国一次性使用PE手套市场调查研究报告
- 2025年规则导线剥皮机项目可行性研究报告
- 2025年罐头盒蜡烛项目可行性研究报告
- 营销管理方案中的定价策略与盈利模式
- 2024年西宁城市职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2024年临沂市高三一模(学业水平等级考试模拟试题)物理试卷
- 广州猎德大桥三维曲面塔清水混凝土施工技术
- 我国糖尿病视网膜病变临床诊疗指南2022解读
- Python数据挖掘实战全套教学课件
- 高级茶艺师技能鉴定(协会版)备考题库-下(多选、判断题汇总)
- 特种设备作业人员体检表(叉车)
- c30混凝土路面施工方案
- 加强师德师风建设学校师德师风警示教育讲座培训课件
- 猪饲料购销合同书
评论
0/150
提交评论