UML之类图和时序图

目录

一、引言

二、类图

1.简介

2.类图关系介绍

3.类图元素表示

4.示例

三、时序图

1.简介

2.时序图元素

3.组合片段

4.示例

四、参考资料


一、引言

UML(Unified Modeling Languge 统一建模语言)是我们在领域建模、工程设计、需求分析、系统架构等场景下经常使用的一种建模手段。UML为我们提供了丰富的图、关系、事物,让我们可以很好的描述各种对象以及对象之间的关系。

本文主要对UML中使用频率较高的类图和时序图进行介绍。


二、类图

1.简介

James Rumbaugh对类的定义是:类是具有相似结构、行为和关系的一组对象的描述符。类是面向对象系统中最重要的构造块。类图显示了一组类、接口、协作以及他们之间的关系。在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等实例。


2.类图关系介绍

a.关联(Association):两个相对独立的对象存在某种关系。常用于描述1对1、1对多、多对多等关系。例如,老师和学生。

用实线大于号表示,大于号的方向为被关联对象

 b.依赖(Dependency):一个对象的存在是以另一个对象为先决条件的。例如,汽车和汽油。 

用虚线大于号表示,大于号的方向为被依赖对象

c.聚合(Aggregate) :部分和整体的关系。不要求部分和整体的生命周期一致。例如,车和车队

用空心菱形和大于号表示,空心菱形方向表示整体,大于号方向表示部分

d.组合(Combination):部分和整体的关系。要求部分和整体的生命周期一致。例如,CPU和服务器

用实心菱形和大于号表示,实心菱形方向表示整体,大于号方向表示部分

f.泛化(Generalization):表示类与类之间的继承关系。例如,汽车和交通工具

用实线空心三角形表示,三角形的方向为父类方向

 g.实现(Realization):表示类与接口的实现关系。例如,鸟和飞翔

用虚线空心三角形表示,三角形的方向为接口方向

 


3.类图元素表示

类框一般分为三层,由上到下依次为:类名(Name)、属性(Attribute)、操作(Operation)

a.权限表示

        + 表示 public

        - 表示 private

        # 表示 protected

        ~ 表示default,可省略

b.常见规则

        抽象类和抽象方法用斜体表示

        静态类和静态方法加下划线

        接口需在类名上方加<<Interface>>

        字段和方法返回值的数据类型非必须


4.示例


三、时序图

1.简介

时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。


2.时序图元素

a.角色(Actor):系统角色,可以是人或者其他系统,子系统。

b.对象(Object):对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部。

c.生命线(Lifeline):生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间 的消息存在于两条虚线间。

d.控制焦点(Activation):控制焦点代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解成C语言语义中一对花括号“{}”中的内容。

e.消息(Message):消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。

tips:

时序图中存在三种消息,同步消息、异步消息以及返回消息

同步消息表示如下:

异步表示表示如下:

 

返回消息表示如下:

  


3.组合片段

片段类型名称说明
Opt选项
包含一个可能发生或可能不发生的序列。可以在临界中指定序列发生的条件。
Alt抉择
包含一个片段列表,这些片段包含备选消息序列。在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 false 并且没有 else ,则不执行任何片段。
Loop循环
片段重复一定次数。可以在临界中指示片段重复的条件。Loop 组合片段具有“Min”和"Max"属性,它们指示片段可以重复的最小和最大次数。默认值是无限制。
Break中断
如果执行此片段,则放弃序列的其余部分。可以使用临界来指示发 生中断的条件。
Par并行
并行处理。片段中的事件可以交错。
Critical关键
用在 Par 或 Seq 片段中。指示此片段中的消息不得与其他消息交错。
Seq弱顺序
有两个或更多操作数片段。涉及同一生命线的消息必须以片段的顺序发生。如果消息涉及的生命线不同 ,来自不同片段的消息可能会并行交错。
Strict强顺序
有两个或更多操作数片段。这些片段必须按给定顺序发生。
Consider考虑
指定此片段描述的消息列表。其他消息可发生在运行的系统中,但对此描述来说意义不大。在"Messages"属性中键入该列表。
Ignore忽略
此片段未描述的消息列表。这些消息可发生在运行的系统中 ,但对此描述来说意义不大。在"Messages"属性中键入该列表。
Assert断言
操作数片段指定唯一有效的序列。 通常用在 Consider 或 Ignore 片段中。
Neg否定
此片段中显示的序列不得发生。通常用在 Consider 或 Ignore 片段中。

4.示例

 

 


四、参考资料

https://baike.baidu.com/item/UML%E7%B1%BB%E5%9B%BE/6842152?fr=aladdin

https://baike.baidu.com/item/%E6%97%B6%E5%BA%8F%E5%9B%BE/3659178?fr=aladdin

程杰.大话设计模式.北京:清华大学出版社,2007

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 创建模型时序图(sequence diagram)的步骤包括: 1. 确定模型中的对象和活动:首先需要确定模型中需要出现的各个对象,以及这些对象在模型中扮演的角色,进而确定模型中需要描述的各个活动。 2. 确定对象之间的关系:在模型中,各个对象之间存在着各种不同的关系,例如,调用、引用、继承等,需要根据实际情况确定各个对象之间的关系,并用适当的箭头表示。 3. 绘制时序图:在确定了模型中的对象和它们之间的关系之后,可以开始绘制时序图时序图一般由多个水平方向排列的 lifeline(生命线)构成,每个 lifeline 代表一个对象,在它上面可以画出对象的各个操作,用垂直的带箭头的线表示。 4. 补充详细信息:最后,需要根据实际情况添加时序图的详细信息,例如各个操作的参数和返回值等,进一步完善模型的表达能力。 ### 回答2: 时序图也是UML建模中非常重要的一种图形,它主要用来描述对象之间的交互关系和消息通信。它能够清晰地展示对象之间的动态关系,对于分析和设计系统非常有帮助。 时序图的主要元素包括对象、生命线、消息、激活条和控制流。在时序图中,每个对象都表示一个状态或实体,生命线表示对象在一定时间段内的存在。消息则表示对象间的交互,包括同步消息、异步消息、返回消息等。激活条则表示在消息发送或者接收时,接收方的响应时间。控制流则表示消息之间的流向和顺序。 时序图的绘制可以根据具体的需求进行制定,一般分为三个步骤。第一步是确定参与交互的对象,包括系统、人员、组件等。第二步是建立生命线和激活条,确定对象的存活期和响应时间。第三步是建立消息和控制流,清晰地展示对象之间的消息交互关系。 时序图的优点在于能够以非常直观的方式展示对象间的交互行为,可以帮助开发人员更好地理解系统的交互方式,从而更好地设计出系统的结构和功能。同时,它还能够帮助进行调试和测试,方便开发人员对交互流程进行分析和优化。 总之,时序图UML建模中非常重要的一种图形,可以用来描述对象之间的交互关系和消息通信。在系统分析和设计中具有广泛的应用,是开发人员必须掌握的技能之一。 ### 回答3: 时序图UML建模中用于表示系统中对象之间交互行为的一种图示方法。时序图通常是用来表示系统中对象之间的交互行为,也可用于描述系统中对象的一般行为。 时序图展示了一系列对象在一段时间内的相互关系、相互交互。时序图就像一个的活动图,这里就是一个方法的调用过程。时序图由对象、生命线、消息和控制流组成。 在时序图中,对象被表示为矩形,矩形上方是对象的名称,下方是对象型。生命线通常是垂直线,表示对象在某段时间内的存在。消息是表示对象之间的通信,有同步消息和异步消息。同步消息是表示调用一个方法并在返回之前等待结果,而异步消息表示调用一个方法并立即返回。 时序图还包括控制流和逆食流,在控制流中,消息从一个生命线流向另一个生命线。逆流控制是一条带箭头的曲线,表示消息的回传。 时序图的优点在于它是一种高度形式化的语言,理解时序图需要一定的技能和专业知识。但是它的优点是,它能够在开发过程的任何阶段使用,并且能够提供完整的交互细节,帮助开发人员精确定义系统的行为,并且帮助测试人员准确地测试和验证系统的行为。在实现新系统、更改或调整现有系统或维护现有系统的过程中,时序图都可以提供实用的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值