UML建模语言

article/2025/9/2 7:13:04

作者:billy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

UML简介

1997年,OMG 组织(Object Management Group对象管理组织)发布了统一建模语言Unified Modeling Language,UML)
UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言;
UML 是不同于其他常见的编程语言,它是一种绘画语言,用来做软件蓝图;
UML 不是一种编程语言,但工具可用于生成各种语言的代码中使用UML图;

想系统学习UML的童鞋,可参考:UML教程


一. UML的9种建模图

UML视图分为用例视图、设计视图、进程视图、实现视图和拓扑视图
又可以分为静态视图和动态视图
静态图分为:用例图,类图,对象图,包图,构件图,部署图
动态图分为:序列图,协作图,状态图,活动图
在这里插入图片描述

1、用例图(UseCase Diagrams):

用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。
从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。
在这里插入图片描述

2、类图(Class Diagrams):

用户根据用例图,通过抽象得到类,包括类的内部结构和类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

【泛化】:是一种继承关系,实线三角指向父类
【实现】:是一种类与接口的关系,虚线三角指向接口
【关联】:是一种拥有的关系,实线箭头指向关联
【聚合】:是整体与部分的关系,且部分可以离开整体而单独存在空心菱形能分离而独立存在,是聚合
【组合】:是整体与部分的关系,但部分不能离开整体而单独存在实心菱形精密关联不可分,是组合
【依赖】:是一种使用的关系,即一个类的实现需要另一个类的协助虚线箭头指向依赖
在这里插入图片描述

3、对象图(Object Diagrams):

描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。
在这里插入图片描述

4、状态图(Statechart Diagrams):

是一种由状态、变迁、事件和活动组成的状态机,用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。
 在这里插入图片描述

5、活动图(Activity Diagrams):

是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。
在这里插入图片描述

5.1 带泳道的活动图

泳道表明每个活动是由哪些人或哪些部门负责完成。
在这里插入图片描述

5.2 带对象流的活动图

用活动图描述某个对象时,可以把涉及到的对象放置在活动图中,并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。对象流用带有箭头的虚线表示。
在这里插入图片描述

6、序列图-时序图(Sequence Diagrams):

交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。
在这里插入图片描述
序列图中涉及的元素:

6.1 生命线

生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。
在这里插入图片描述

6.2 同步消息

同步等待消息。
在这里插入图片描述

6.3 异步消息

异步发送消息,不需等待。
在这里插入图片描述

6.4 注释

在这里插入图片描述

6.5 约束

在这里插入图片描述

6.6 组合

组合片段用来解决交互执行的条件及方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。常用的组合片段有:抉择、选项、循环、并行。

7、协作图(Collaboration Diagrams):

交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系。时序图按照时间顺序布图,而写作图按照空间结构布图。
在这里插入图片描述

8、构件图(Component Diagrams):

构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
在这里插入图片描述

9、部署图(Deployment Diagrams):

描述一个具体应用的主要部署结构,通过对各种硬件,在硬件中的软件以及各种连接协议的显示,可以很好的描述系统是如何部署的;平衡系统运行时的计算资源分布;可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型。
在这里插入图片描述


二、视图之间的比较

  1. 序列图(时序图) VS 协作图
    序列图和协作图都是交互图。二者在语义上等价,可以相互转化。
    但是侧重点不同:序列图侧重时间顺序,协作图侧重对象间的关系。
    共同点:时序图与协作图均显示了对象间的交互
    不同点:时序图强调交互的时间次序,协作图强调交互的空间结构
  2. 状态图 VS 活动图
    状态图和活动图都是行为图
    状态图侧重从行为的结果来描述,活动图侧重从行为的动作来描述。
    状态图描述了一个具体对象的可能状态以及他们之间的转换。
    在实际的项目中,活动图并不是必须的,需要满足以下条件:
    1、出现并行过程&行为;
    2、描述算法;
    3、跨越多个用例的活动图。
  3. 活动图 VS 交互图
    二者都涉及到对象和他们之间传递的关系。
    区别在于交互图观察的是传送消息的对象,而活动图观察的是对象之间传递的消息。看似语义相同,但是他们是从不同的角度来观察整个系统的。

三、UML与软件工程

UML图是软件工程的组成部分,软件工程从宏观的角度保证了软件开发的各个过程的质量。而UML作为一种建模语言,更加有效的实现了软件工程的要求,如下图在软件的各个开发阶段需要的UML视图。
在这里插入图片描述


小结

UML视图介绍完了,想要更好的掌握UML建模就需要在项目中不断实践,之后博主会开启“设计模式”的篇章,每一种设计模式的实现也会用UML来建模,希望通过实践对UML有更深入的了解!


参考

https://www.cnblogs.com/wolf-sun/p/UML-collaboration-diagram.html
https://blog.csdn.net/zhou2s_101216/article/details/38467715


http://chatgpt.dhexx.cn/article/lwcJLWVw.shtml

相关文章

UML建模(二):基于UML的软件开发过程

基于UML的软件开发过程 需求分析阶段 可以使用用例图来描述目标软件系统所有重要、有风险的用例,利用用例图表示参与者与用例及用例与用例之间的关系; 可以使用类图来表示目标软件系统所基于的应用领域中的概念与概念之间的关系,这些相互关…

常用的UML建模详解

UML主要包括图表中的十一种,那在本次的介绍中,只讲解活动图、状态机图、顺序图。 种类UML图作用结构图类图主要用来业务概念模型分析,在需求分析中必不可少对象图一般开发人员会使用,产品经理不常用构件图用来分析IT基础架构&…

软件设计师 UML建模大题

目录 1.extend关系的内涵 2.多重度 3.事物和关系的图形化表示 4.用例图示例 5.类图示例 6.顺序图示例 7.状态图示例 8.活动图示例 UML建模技术类题目要求考生认真阅读题目说明中对现实问题的描述,使用UML建模的原则,从中确定用例图、类图、顺序图、状态图和活动图的各种…

软考-软件设计师 UML建模

文章目录 UML概念关系类图对象图用例图构件图部署图序列图通信图状态图活动图 UML概念 UML是统一建模语言,和程序设计语言并无关系。  UML三个要素:UML的基本构造块,支配这些构造块如何放置在一起的规则和运用与整个语言的一些公共机制。  …

UML建模与软件工程

前言 前面几篇博文小编初步为大家分享了UML建模中的相关内容-事物、关系、九种图。那么,我们有没有想过为什么要学习UML建模呢?学习UML建模有什么用途呢?如何使用UML中的模型图呢?本文小编将带您一起走进这精彩而奇妙的世界。 正…

UML建模工具介绍

1. PowerDesigner PowerDesigner 是业内首屈一指的数据建模工具,可让企业更轻松地直观展示、分析和操作元数据,从而更有效地实施企业信息体系结构。 2. StarUML StarUML(简称SU),是一种创建UML类图,是一种生成类图和其他类型的统一…

UML建模工具2021年8-11月更新(共15款)

UMLChina整理的UML建模工具列表请见http://www.umlchina.com/tools/search.aspx 最近一段时间更新: 工具最新版本:ConceptDraw DIAGRAM v15 更新时间:2021年11月16日 工具简介 以前的ConceptDraw Pro,1999年创建的老牌绘图工具…

如何做接口测试呢?接口测试有哪些工具【小白都会系列】

回想入职测试已经10年时间了,初入职场的我对于接口测试茫然不知。后来因为业务需要,开始慢慢接触接口测试。从最开始使用工具进行接口测试到编写代码实现接口自动化,到最后的测试平台开发。回想这一路走来感触颇深,因此为了避免打…

接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例

一、用例设计1 1、接口测试概念 接口测试:测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点 2、接口测试方法 a、可以通过开发脚本代码进行测试 b、可以通过开源免费的接口调用…

做接口测试的流程一般是怎么样的?

在讲接口流程测试之前,首先需要给大家申明下:接口测试对于测试人员而言,非常非常重要,懂功能测试接口测试,就能在企业中拿到一份非常不错的薪资。 这么重要的接口测试,一般也是面试笔试必问。为方便大家更…

自动化测试——接口测试怎么做?

目录: 一、什么是接口? 二、接口测试流程 三、接口测试工具 四、接口测试技术点 五、总结 导读: 为什么要做接口测试 接口测试本质上是功能测试的一种,属于后端服务器测试。但是它的影响范围要远广于web,app层面。原因…

接口测试教程(一看就会)

前言 掌握了http协议,就掌握了接口测试 笔者在网络上看过不少接口测试教程,一上来就开始讲怎么操作工具,而不告诉读者为什么要这么操作。读者可能照猫画虎成功了,也可能操作失败了但不知为何出错。 因此,本文作为接口…

接口测试的价值(为什么要做接口测试)

目录 首先了解一下互联网的技术架构: 接口测试的必要性 接口测试不能取代UI的测试 首先了解一下互联网的技术架构: 按照端来划分可以分为两部分:移动端和服务端,各自的内容大概如下图所示 后端(服务端)…

接口测试的原理,什么是接口测试?为什么要做接口测试?如何开展接口测试?

什么是接口? 业内常说的接口一般指两种: API:应用程序编程接口,程序间的接口GUI:图形用户界面,人与程序的接口 软件接口测试中的接口特指API接口接口测试又称API测试 接口实例:系统与系统间…

接口测试到底怎么做,5分钟时间看完这篇文章彻底搞清楚

01、通用的项目架构 02、什么是接口 接口:服务端程序对外提供的一种统一的访问方式,通常采用HTTP协议,通过不同的url,不同的请求类型(GET、POST),不同的参数,来执行不同的业务逻辑。…

手把手教你做接口测试

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 简答的说就是通过URL像服务器或者其他模块等&…

接口测试是什么?为什么要做接口测试?

前言 接口测试现在已经成为测试工程师的必备技能 我是常常安利身边的工程师一定要精通接口测试,注意,这里是精通,不是知道或了解。原因很简单,你点开招聘网站上各大公司对于测试工程师的要求,就能看到接口测试已经成为…

如何做接口测试

文章目录 前言一、什么是接口、接口测试1.接口2.接口测试 二、进行接口测试的基本流程1.需求获取2.测试计划编写3.测试用例设计、评审4. 测试执行5.测试报告、评估 三、接口测试思路四、接口测试工具 前言 一、什么是接口、接口测试 首先进行接口测试之前,先了解什…

接口测试需要怎么做?

接口测试需要怎么做? 什么是接口测试?接口测试到底测什么?如何进行接口测试?SSL-Pinning的问题及解决方案接口测试自动化回归测试接口自动化回归测试方案接口测试的更多可能参考文献 关注【郑大钱呀】[公][众][号],回复…

接口测试到底怎么做?

01 通用的项目架构 02 什么是接口 接口:服务端程序对外提供的一种统一的访问方式,通常采用HTTP协议,通过不同的url,不同的请求类型(GET、POST),不同的参数,来执行不同的业务逻辑。 …