UML通信图
UML科普文,一篇文章掌握14种UML图

UML科普⽂,⼀篇⽂章掌握14种UML图前⾔上⼀篇⽂章写了⼀篇建造者模式,其中有⼏个UML类图,有的读者反馈看不懂了,我们今天就来解决⼀哈。
什么是UML?UML是Unified Model Language的缩写,中⽂是统⼀建模语⾔,是由⼀整套图表组成的标准化建模语⾔。
为什么要⽤UML?通过使⽤UML使得在软件开发之前,对整个软件设计有更好的可读性,可理解性,从⽽降低开发风险。
同时,也能⽅便各个开发⼈员之间的交流。
UML提供了极富表达能⼒的建模语⾔,可以让软件开发过程中的不同⼈员分别得到⾃⼰感兴趣的信息。
Page-Jones 在《Fundamental Object-Oriented Design in UML》⼀书中总结了UML的主要⽬的,如下:1. 为⽤户提供现成的、有表现⼒的可视化建模语⾔,以便他们开发和交换有意义的模型。
2. 为核⼼概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。
3. 独⽴于特定的编程语⾔和开发过程。
4. 为了解建模语⾔提供⼀个正式的基础。
5. ⿎励⾯向对象⼯具市场的发展。
6. ⽀持更⾼层次的开发概念,如协作,框架,模式和组件。
7. 整合最佳的⼯作⽅法 (Best Practices)。
UML图有哪些?UML图分为结构图和⾏为图。
结构图分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图。
⾏为图⼜分活动图、⽤例图、状态机图和交互图。
交互图⼜分为序列图、时序图、通讯图、交互概览图。
UML图概览什么是类图?【概念】类图是⼀切⾯向对象⽅法的核⼼建模⼯具。
类图描述了系统中对象的类型以及它们之间存在的各种静态关系。
【⽬的】⽤来表⽰类、接⼝以及它们之间的静态结构和关系。
在类图中,常见的有以下⼏种关系。
泛化(Generalization)【泛化关系】是⼀种继承关系,表⽰⼦类继承⽗类的所有特征和⾏为。
【箭头指向】带三⾓箭头的实线,箭头指向⽗类。
UML通信图

示例
通信图示例:
通信图的组成
① ② ③
通信图包含了3个元素: 对象(Object) 链(Link) 消息(Message)
通信图的组成
对象 通信图与顺序图中的对象的概念是一样, 只不过在通信图中,无法表示对象的创建 和撤销,所以对于对象在图中的位置没有 限制。
通信图的组成
链 通信图中链的符号和对象图中链所用的符 号是一样的,即一条连接两个类角色的实 线。 对于链接还可以加上“角色”与“约束”, 在链角色上附加的约束有global(全局), local(局部),parameter(参数),self(自 身),broadcast(广播)。
通信图组成
监护条件:
通常是用来表示分支的,也就是表示“如果条件为 true,才发送消息”
通信图组成
多重对象
多个对象的集合,往往是同类的对象;
如果消息同时发给多个对象,则用多重对象表示; 在顺序图中仍然显示为单对象一样的图标;
通信图组成
活动对象
拥有控制线程的对象,能够发起控制活动;
某种意义下,代表线程;
: Loan
: Item
4. 系统管理员删除书籍的通信 图
1: remove item( ) : Maintenance Window : Administrator 2: find(String) 3: update( ) : Item
: Title
5. 借阅者预留书籍的通信图
: Title 2: find(String)
通信图
课程内容
概念 通信图组成元素-
对象、链和消息 顺序图与通信图的比较 顺序图与通信图的互换 通信图建模技术 实例——图书馆管理系统的通信图
面向对象与UML 第五章 序列图和通信图

5.3 建立序列图
3. 添加消息
按发生的顺序在对象之间添加交互消息。
– 客户通过发送创建消息EntryDialogue打开登录对话 框
– 客户通过发送inputUserInfo消息向登录对话框中输 入用户信息
– 登录对话框通过发送sendUserInfo消息将用户信息发 往服务器
5.3 建立序列图
server:Server
database:DataBase
e n tryDi a l o g :En tryDi a l o g En tryDi a l o g ()
«create»
i n p u tUse rIn fo ()
sendUserInfo()
i n p u tUse rIn fo ()
5.3 建立序列图
1. 确定事件流
“用户登录”的异常流: 用户输入的信息与数据库中存储的信息不匹配,数据库 验证不通过,弹出错误信息。
5.3 建立序列图
2. 布置对象
基本流中的对象主要有客户(client)、数据库(database)、 服务器(server)、登录对话框(entryDialogue)、好友 列表(friendList)
– 服务器再把该用户信息发往数据库进行身份验证, 若合法,返回消息允许用户登录,同时服务器通过 向自身发送updateList消息更新在线用户列表
– 服务器通过创建消息FriendList创建该用户好友列表 – 通过消息getOfflineMessage向数据库请求其他好友向
该用户发送的离线
5.3 建立序列图
3. 添加消息
按发生的顺序在对象之间添加交互消息。
– 客户通过发送创建消息EntryDialogue打开登录对话框
2019最新03交互图数学

动作图框可以包含任意语言的语句(在本例中,表
示“i”递增)。该图框应置于其所应用的生命线上
图15-16 使用相对直接的表示法对集合进行遍历
可能的Java代码实现见下页
24
图15-6 可能的Java代码实现
public class Sale{ private List<SalesLineItem> lineItems= new ArrayList<SalesLineItem>();
:B
21
有条件消息
: Foo opt [ color = red ]
xx calculate
yy
图15-13 有条件消息
: Bar
22
互斥的有条件消息
:A doX
alt
[ x < 10 ]
[ else ]
:B calculate
calculate
图15-15 互斥的有条件消息
:C
23
对集合的迭代
顺序图与类图的映射
职责分配
系统顺序图 鲁棒性分析
BCE模式
案例实践与分析
交互图概述
顺序图:按照时间顺序来描述对 象的交互
通信图:围绕着对象和对象之间 的链接来描述对象的交互
这两种图在语言上是对等的,但二
者所展示的信息有一些区别 8
交互图是有价值的
交互图为编程提供了帮助 模式、原则和惯用法被用来提高交互图的质量 UML初学者没有对交互图给予足够重视
图15-24 消息
35
“自身”传递的消息
msg1 : Register
1: clear
图15-25 传递到“自身”的消息
UML 实验3 ATM取款顺序图和通信图

实验三顺序图和通信图
一、实验目的
1.学会用通信图实现用例
2.掌握顺序图的绘制方法以及顺序图和通信图的相互转换。
二、实验器材
1. 计算机一台;
2. Rational Rose 工具软件;
三、实验内容
画出ATM取款的顺序图,并转换为通信图。
四、实验步骤
1.分析
ATM取款的场景:
(1)通过读卡机,用户插入A TM卡;
(2)ATM系统从卡上读取银行ID、账号、加密密码、并用主银行系统验证银行ID和账号;
(3)用户输入密码,A TM系统根据上面读出的卡上加密密码,对密码进行验证;
(4)用户输入取款数量;
(5)ATM系统通知主银行系统,传递储户账号和取款数量,并接收返回的确认信息;
(6)ATM系统输出先进、A TM卡和显示账户余额的收据;
(7)ATM系统记录事务到日志文件。
寻找场景中的对象:ATM、客户和账户。
2.绘图步骤:
下面介绍在Rose中创建顺序图的过程:
(1)在“Logical View”中新建“Sequence Diagram“,双击图标,出现图1,为编辑顺序图做好准备。
UML通信图的绘制方法分析

UML通信图的绘制方法分析UML(Unified Modeling Language)通信图是一种用于描述系统中对象之间交互关系的图表工具。
它可以清晰地展示对象之间的消息传递和协作方式,帮助开发人员更好地理解系统的结构和行为。
在软件开发过程中,正确地绘制UML通信图对于设计和实现高质量的软件系统至关重要。
本文将分析UML通信图的绘制方法,以帮助读者更好地掌握这一技巧。
1. 选择适当的场景和参与者在绘制UML通信图之前,首先需要明确要描述的场景和参与者。
场景是指系统中发生的特定事件或操作,参与者是指与该场景相关的对象或角色。
选择适当的场景和参与者对于绘制准确的通信图至关重要。
例如,如果要描述一个电子商务系统中的购物流程,场景可以是用户浏览商品,参与者可以是用户、商品和购物车等。
2. 确定对象和消息确定参与者后,需要进一步确定参与者之间的交互方式。
在UML通信图中,对象表示参与者,消息表示参与者之间的交互。
对象可以是具体的类或实例,消息可以是方法调用或事件触发等。
确定对象和消息是绘制通信图的关键步骤,需要仔细分析系统的需求和设计,确保图表准确地反映系统的交互关系。
3. 绘制对象和消息一般来说,UML通信图是从左到右进行绘制的。
可以使用矩形表示对象,将对象的名称放在矩形内部。
每个对象之间使用实线箭头表示消息的传递方向。
箭头的起点表示消息的发送者,箭头的终点表示消息的接收者。
可以在箭头上方或下方标注消息的名称和参数等信息。
通过适当地调整对象和消息的位置,可以使通信图更加清晰易懂。
4. 添加细节和注释为了增加通信图的可读性和理解性,可以添加一些细节和注释。
例如,可以在对象旁边添加对象的属性和方法,以便更好地理解对象的行为。
可以使用注释框标注一些关键信息,如条件、循环和异常处理等。
通过添加细节和注释,可以使通信图更加完整和详细,帮助读者更好地理解系统的交互过程。
5. 不断迭代和优化绘制UML通信图是一个迭代的过程,需要不断地优化和改进。
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的基本构造块为标题,我们将探讨UML(统一建模语言)中的不同构造块,并解释它们在软件开发中的作用。
UML是一种可视化建模语言,用于描述、设计和分析软件系统。
它提供了一套丰富的图形符号和标记,以帮助开发人员更好地理解和沟通软件系统的结构和行为。
1. 类图(Class Diagram):类图是UML中最常用的构造块之一,用于表示软件系统中的类、接口、关系和属性。
类图显示了各个类之间的关系,包括继承、关联、聚合和组合等。
它帮助开发人员理解系统的静态结构,并为代码编写提供了指导。
2. 对象图(Object Diagram):对象图是类图的实例化,它显示了系统中具体对象的状态和关系。
对象图可以用来验证类图的设计是否正确,也可用于调试和测试。
对象图有助于开发人员更好地理解系统的运行时行为。
3. 时序图(Sequence Diagram):时序图描述了系统中对象之间的交互顺序。
它展示了对象在一段时间内的消息传递和方法调用。
时序图帮助开发人员理解系统的动态行为,特别是在多个对象之间的协作和交互方面。
4. 用例图(Use Case Diagram):用例图用于描述系统的功能需求和行为。
它显示了系统的不同角色(用户)与系统之间的交互。
用例图帮助开发人员理解系统的用例(功能)以及这些用例之间的关系。
5. 组件图(Component Diagram):组件图描述了系统的物理组件和它们之间的关系。
组件可以是代码模块、库、外部系统或其他可重用的软件部件。
组件图有助于开发人员理解系统的软件架构,以及各个组件之间的依赖关系。
6. 部署图(Deployment Diagram):部署图显示了软件系统的物理部署结构。
它描述了软件组件和硬件设备之间的映射关系。
部署图有助于开发人员理解系统的部署环境,包括服务器、网络和设备等。
7. 状态图(State Diagram):状态图描述了对象在不同状态之间的转换。
它展示了对象的生命周期和状态转换的条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 通信图中的消息类型与顺序图中的相同, 只不过为了说明交互过程中消息的时间顺 序,需要给消息添加顺序号。
❖ 顺序号是消息的一个数字前缀,是一个整 数,由1开始递增,每个消息都必须由唯一 的顺序号。可以通过点表示法代表控制的 嵌套关系。
❖ 嵌套可以具有任意深度。与顺序图相比, 通信图可以显示更为复杂的分支。
通信图
课程内容
❖概念 ❖通信图组成元素- 对象、链和消息 ❖ 顺序图与通信图的比较 ❖ 顺序图与通信图的互换 ❖ 通信图建模技术 ❖实例——图书馆管理系统的通信图
概念
❖ 通信图描述的是和对象结构相关的信息。 ❖ 通信图的用途是表示一个类操作的实现。 ❖ 通信图对交互中有意义的对象和对象之间
的链建模。 ❖ 在UML中,通信图用几何排列来表示交互
ห้องสมุดไป่ตู้
通信图的组成
❖链
❖ 通信图中链的符号和对象图中链所用的符 号是一样的,即一条连接两个类角色的实 线。
❖ 对于链接还可以加上“角色”与“约束”, 在链角色上附加的约束有global(全局), local(局部),parameter(参数),self(自 身),broadcast(广播)。
通信图的组成
1.1.1b,…
通信图组成
监护条件:
通常是用来表示分支的,也就是表示“如果条件为 true,才发送消息”
通信图组成
多重对象
多个对象的集合,往往是同类的对象; 如果消息同时发给多个对象,则用多重对象表示; 在顺序图中仍然显示为单对象一样的图标;
通信图组成
活动对象
拥有控制线程的对象,能够发起控制活动; 某种意义下,代表线程;
: Maintenance Window
3: update( )
2: find(String)
: Item
: Title
5. 借阅者预留书籍的通信图
: Title
2: find(String)
1: identify borrower( ) 3: reserve title( )
: Borrower
顺序图与通信图的比较
❖ 通信图与顺序图很相似,两者语义等价, 两种图表达的是同一种信息,可以将顺序 图转换为等价的通信图。
❖ 区别: ❖ 顺序图强调是交互的时间顺序。 ❖ 通信图强调的是交互的语境和参与交互的
对象的整体组织。
顺序图与通信图的互换
❖ 顺序图与通信图都表示对象之间的交互 作用,只是它们的侧重点有所不同:
: Reservation Window
4: reserve( )
: Item
5: create(Title, Borrower)
: Reservation
通信图的组成
消息
❖ 消息类型有返回消息,同步消息和异步消息三种。 消息定义的格式如下:
❖ 消息类型 标号 控制信息:返回值:=消息名 参 数表
❖ 标号有3种:
❖ 顺序执行:按整数大小执行。1,2… ❖ 嵌套执行:标号中带小数点。1.1,1.2,
1.3,… ❖ 并行执行:标号中带小写字母。1.1.1a,
作用中的对象和链,附在链的箭头代表消 息,消息的发生顺序用消息箭头处的编号 来说明。
❖ 通信图示例:
示例
通信图的组成
❖ 通信图包含了3个元素: ① 对象(Object) ② 链(Link) ③ 消息(Message)
通信图的组成
❖ 对象 ❖ 通信图与顺序图中的对象的概念是一样,
只不过在通信图中,无法表示对象的创建 和撤销,所以对于对象在图中的位置没有 限制。
的场景。 ③ 对每个对象设置初始特性。 ④ 描述对象之间可能有信息沿着它传递的链。 ⑤ 从引起交互的消息开始,适当地设置其顺序号,
然后将随后的每个消息附到适当的链上。 ⑥ 如果需要说明时间或空间约束,可以用时间标
记修饰这个消息,并附上合适的时间和空间约 束。 ⑦ 如果需要更形式化地说明这个控制流,可以为 每个消息附上前置和后置条件。
实例——图书馆管理系统的 通信图
❖ 图书馆管理系统的通信图
图书馆管理系统的通信图
❖ 1. 系统管理员添加书籍的通信图 ❖ 2. 图书管理员处理借书的通信图 ❖ 3. 图书管理员处理还书的通信图 ❖ 4. 系统管理员删除书籍的通信图 ❖ 5. 借阅者预留书籍的通信图
1. 系统管理员添加书籍的通信 图
: Lend Window
4: borrow( )
: Title
: Administrator
6: borrow( ) 7: check_if_max( )
3: find(Borrower, Title)
: Reservation
: Loan
3. 图书管理员处理还书的通信 图
1: find borrower( )
: Return Window
3: return_back( )
: Librarian
5: return_back( ) 2: find(String)
: Loan
: Title 4: update( )
: Item
4. 系统管理员删除书籍的通信 图
1: remove item( ) : Administrator
1: add item( ) : Administrator
: Maintenance Window
3: update( )
2: find(String)
: Item
: Title
2. 图书管理员处理借书的通信 图
: Item
2: find reservation( )
5: update( )
1: identify borrower( )
① 顺序图描述了交互过程中的时间顺序, 但没有明确地表达对象之间的关系。
② 通信图描述了对象之间的关系,但时间 顺序必须从顺序号获得。
❖ 两种图的语义是等价的,可以从一种形 式的图转换成另一种形式的图,而不丢 失任何信息。
顺序图与通信图的互换
顺序图与通信图的互换
通信图建模技术
① 设置交互的语境。 ② 通过识别对象在交互中扮演的角色,设置交互