目录

  • UML概述
  • UML图分类
  • 类图和时序图
    • 类图
      • 类图概述
      • 类图的结构
      • 类图中的关系
    • 时序图
      • 时序图概述
      • 组成元素
      • 示例图

UML概述

  1. 统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。
  2. UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。
  3. UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

UML图分类

UML2.0一共包括13种图形(大致分成静态图和动态图两类):活动图,类图,通信图(对应UML1.x的协作图),组件图,复合结构图(UML2.0新增),部署图, 交互概览图(UML2.0新增),对象图,包图,时序图,状态图,定时图(UML2.0新增),用例图

  • 类图:描述系统中类的静态结构。
  • 对象图:系统中的多个对象在某一时刻的状态。
  • 包图:对构成系统的模型元素进行分组整理的图
  • 组件图:一种特殊的UML图来描述系统的静态实现视图
  • 部署图:定义系统中软硬件的物理体系结构
  • 复合结构图:表示类或者构建内部结构的图
  • 用例图:从用户角度描述系统功能。
  • 状态图:是描述状态到状态控制流,常用于动态特性建模
  • 活动图:描述了业务实现用例的工作流程
  • 时序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互
  • 协作图:描述对象之间的协助关系
  • 定时图:定时图采用一种带数字刻度的时间轴来精确地描述消息的顺序
  • 交互概览图:用活动图来表示多个交互之间的控制关系的图
    详细分类参考下图:

类图和时序图

在java的设计模式分析中,常用到两种图:类图和时序图。所以我们主要学习类图和时序图。

类图

类图概述

  1. UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码。类图在UML的9个图中占据了一个相当重要的地位。
  2. James Rumbaugh对类的定义是:类是具有相似结构、行为和关系的一组对象的描述符。类是面向对象系统中最重要的构造块。
  3. 类图显示了一组类、接口、协作以及他们之间的关系。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等实例。
  4. 接口在类图中通过版型来表示<>

类图的结构

类图中的关系

在UML类图中,常见的有以下几种关系: 泛化(Generalization),依赖(Dependency), 实现(Realization)关联(Association)聚合(Aggregation)组合(Composition)

1. 泛化(Generalization)

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

【箭头指向】:带三角箭头的实线,箭头指向父类

2. 实现(Realization)

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

【箭头指向】:带三角箭头的虚线,箭头指向接口

3. 关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,

丈夫与妻子关联可以是双向的,也可以是单向的。

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者


4. 依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,

所以要尽量不使用双向的互相依赖.

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者


5. 聚合(Aggregation)

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。

如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向整体

5. 组合(Composition)

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,

它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

各种关系的强弱顺序:

泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

下面这张UML图,比较形象地展示了各种类图关系:

时序图

时序图概述

  1. 时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
  2. 时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
  3. 展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互。
  4. 相对于其他UML图,时序图更强调交互的时间顺序,可以直观的描述并发进程。

组成元素

1. 角色(Actor)
系统角色,可以是人、机器、其他系统、子系统;在时序图中用表示。

2. 对象(Object)

  • 对象的三种命名方式
    第一种方式包括对象名和类名,例如:直播课时:课时 ,在时序图中,用“对象:类”表示;
    第二种方式只显示类名,即表示它是一个匿名对象,例如: :课程;在时序图中,用“:类”表示;
    第三种方式只显示对象名不显示类名,例如:讲师;在时序图中,用“对象”表示。

  • 命名方式的选择
    三种命名方式均可,哪种最容易让阅读该时序图的人理解,就选择哪种。

  • 对象的排列顺序
    对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:把交互频繁的对象尽可能的靠拢;把初始化整个交互活动的对象放置在最左端。

3. 生命线(Lifeline)
在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。

4. 控制焦点(Focus of Control)
又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的操作。它可以被理解成C语言语义中一对花括号{ }中的内容;用小矩形表示。

5. 消息(Message)
消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)。

  • 消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义;
  • 消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
  • 返回消息表示从过程调用返回。

6. 自关联消息
表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。

7. 组合片段(Combined Fragment)
组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片段共有13种,名称及含义如下:


常用组合片段举例:

用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的if…else…
(1)抉择(Alt)

抉择在任何场合下只发生一个序列。 可以在每个片段中设置一个临界来指示该片段可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 False 并且没有 else,则不执行任何片段。

(2)选项(Opt)

包含一个可能发生或不发生的序列;

(3)循环(Loop)

片段重复一定次数,可以在临界中指示片段重复的条件。

(4)并行(Par)

示例图

参考链接:
http://www.uml.org.cn/oobject/201610282.asp
https://www.cnblogs.com/xykjlcx/p/8514583.html
https://docs.staruml.io/working-with-diagrams/sequence-diagram

java进阶之UML类图和时序图相关推荐

  1. Eclipse 插件用法:Eclipse 利用 Amateras UML 生成 Java 类图、时序图和 UML 类图

    文章目录 前言 一.安装 Eclipse 官方提供的安装框架 GEF 1.1.Eclipse 中第三方插件更新/安装策略 1.2.为什么选择 GEF 框架? 1.3.GEF 框架安装 二.安装 Ama ...

  2. eclipse下生成Java类图和时序图,生成UML图

    0.美图 最近老板让我做类图和时序图 1. 安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF 采用eclipse在线安装方式安装就好. eclipse在线安装GEF的地 ...

  3. 【设计相关】UML类图和时序图介绍

    文章目录 一. 什么是UML UML的定义 UML的应用场景 类图(Class Diagrams) 类关系 继承关系 记忆技巧 案例 汽车关系 购票机 类说明 方法说明 时序图(Sequence Di ...

  4. 看懂UML类图和时序图

    看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...

  5. 用gif图展示UML中箭头和线条的含义,及搞懂UML类图、时序图和用例图

    前言 新进入一家公司,应对 日常的软件开发工作和交流,要能看懂别人写的代码各个类之间的关系,那就需要您能看懂类图uml中各个类之间的线条.箭头代表什么意思? UML的类图中,一共有以下六大关系: 泛化 ...

  6. 图解Java设计模式之UML类图

    图解Java设计模式之UML类图 3.1 UML基本介绍 UML图 UML类图 3.1 UML基本介绍 1)UML – Unified modeling language UML(统一建模语言),是一 ...

  7. UML的类图、时序图表示方法以及惯例

    UML 类图图示样例(总图) 一.类图 类图分三层: 第一层显示类的名称. 如果是抽象类,则就用斜体显示 .第二层是类的特性,通常就是字段和属性. 第三层是类的操作,通常是方法或行为. 注意前面的符号 ...

  8. Java基础:UML类图

    文章目录 1. 可见性符号 2. 类之间的关系 2.1 泛化(Generalization) 2.2 实现(Realization) 2.3 关联(Association) 2.4 依赖(Depend ...

  9. java时序图工具_快速学习时序图:时序图简介、画法及实例

    点击上方☝Java编程技术乐园,轻松关注!及时获取有趣有料的技术文章 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 一. 什么是时序图? 时序图(Sequence Di ...

最新文章

  1. idea创建Struts2 项目并运行
  2. android开机启动c程序,如何让A20,android开机自动启动C程序【转】
  3. 如何编译文件(gcc + nasm)
  4. C#方便的生成函数字典
  5. Q102:光线追踪场景(2)——PLYs(多种模型汇集)
  6. 顺序执行命令需要哪个符号链接_18年MBA联考如何安排答题时间及顺序
  7. RSA加解密VS加签与验签
  8. «构建并破坏它»:某些算法如何生成验证码,而另一些则如何破解
  9. 谷歌地图离线包-尝试
  10. word目录缩进设置
  11. dw中html是什么,dw中的css是什么意思?
  12. 青春校园小说:天使会爱上恶魔【完】『看了绝对上瘾』(欢迎转载)
  13. SuperMemo UX 添加笔记 Ctrl+H
  14. java透视图_Eclipse透视图
  15. 全球最厉害最有钱的24位顶尖程序员及其代表项目(公号回复“顶尖程序员”下载PDF资料)
  16. jmeter第21讲 阿里云下载安装JDK并配置环境变量
  17. 算法推荐女朋友,靠谱吗?
  18. Chino with Train to the Rabbit Town
  19. 据说:只有程序员才能看懂的图!
  20. Citrix_XenDesktop 搭建过程

热门文章

  1. 性能测试体系之性能管理能力成熟度
  2. ES TS JS
  3. ppt流程图字体太小_PPT基础不好?这5个高大上的PPT技巧,瞬间让老板刮目相看!...
  4. USB3.0规范中译本 第七章 链路层(1)
  5. 修改计算机网络适配器的IPv4地址
  6. 写了个能用的战国传承 3 连击脚本
  7. centos同步服务器时间
  8. 电脑重装系统 / 系统迁移
  9. Mac电脑中被同名的另一个文件替换,如何恢复旧文件?
  10. 针对新冠肺炎微博热搜话题使用R语言进行文本特征提取的四种方法(一) —— 基本特征提取