avatar

刘刚刚的blog

采菊东篱下,悠然见南山🦥

  • 首页
  • python
  • 大模型应用
  • 软件/工具导航页
  • 关于
Home 常用的uml类图及其表示方法
文章

常用的uml类图及其表示方法

Posted 13 days ago Updated 13 days ago
By Administrator
548~704 min read

UML

uml图的种类:

图表类型

描述

用例图

由参与者(Actor)、用例(Use Case)、边界以及它们之间的关系构成的用于描述系统功能的视图。用例之间的关系有包含、扩展、泛化。

类图

展现了一组对象、接口、协作和它们之间的关系。类之间的关系有关联、依赖、实现、泛化。

对象图

描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。

构件图

描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。

组合结构图

用于画出结构化类的内部内容。

顺序图(序列图)

由一组对象或参与者以及它们之间可能发送的信息构成。强调消息的时间次序的交互图。

通信图

强调收发消息的对象或参与者的结构组织。强调的是对象之间的组织结构(关系)。

定时图

强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。

状态图

用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。

活动图

将进程或其他计算的结构展示为计算内部一步步的控制流和数据流。可并行。

部署图

软件和硬件组件之间的物理关系以及处理节点的组件分布情况。

制品图

描述计算机中一个系统的物理结构通常与部署图一起使用。

包图

描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。

交互概览图

是活动图和顺序图的混合物。

常用的UML 图类型

类图

类图是面向架构设计中最重要的图之一,在面向对象的架构中一般包括三种类:实体类、控制类(控制用例工作)和边界类(系统内部和外部的交互)。

一个类包含三个部分:类的名字、类的属性列表和类的方法列表。

类之间有 6 种静态关系:关联、依赖、组合、聚合、继承、泛化。

image-20250520181904421


在项目不同阶段的作用:

项目阶段

需求分析

一般将领域模型对象用类图表示,主要关注领域对象的识别及其关系,一般只画出类名、关系。

软件详细设计

一般会画出核心类、有代表性的类、有难度的类图。可以让开发人员的代码更加规范、统一。

组件图

组件图展现了一组构件之间的组织和依赖。组件是比类粒度更大的设计元素,一个组件中通常包含很多个类。组件图有的时候和包图的用途比较接近,在实践中,进行模块设计的时候更多的是用组件图。

img


在项目不同阶段的作用:

项目阶段

软件概要设计

通常用以描述和设计软件的模块及其之间的关系

用例图

用例图展现了一组用例、参与者以及它们之间的关系。

用例图中的参与者是人、硬件或其他系统可以扮演的角色;用例是参与者完成的一系列操作,用例之间的关系有扩展、包含、泛化。

img

 用例之间的关系:

image-20250520175917942


在项目不同阶段的作用:

项目阶段

需求分析

通过反映用户和软件系统的交互,描述系统的功能需求。有时还需要对用例图配以文字说明,形成需求文档。

状态图

状态图用来展示单个对象生命周期的状态变迁。

图中方框代表状态,箭头上的代表触发事件,实心圆点为起点和终点。

img


在项目不同阶段的作用:

项目阶段

需求分析

描述状态变迁的逻辑关系,配以文字描述

软件详细设计

此阶段中,状态要用枚举值表示,以指导具体的开发。

序列图

序列图,用来描述参与者之间在时间序列中的动态调用关系。(每个参与者有一条垂直向下的生命线,参与者之间的消息从上到下表示其调用的前后顺序关系)

有三种消息类型:

  1. 同步消息(进行阻塞调用,调用者中止执行,等待控制权返回,需要等待返回消息,用实心三角箭头表示)

  2. 异步消息(发出消息后继续执行,不引起调用者阻塞,也不等待返回消息,由空心箭头表示)

  3. 返回消息(由从右到左的虚线箭头表示)

image-20250520181753381


在项目不同阶段的作用:

项目阶段

需求分析

采用较大的对象粒度

软件详细设计

采用较小的对象粒度

活动图

动态图,是一种特殊的状态图,展现了在系统内从一个活动到另一个活动的流程。活动的分岔和汇合线是一条水平粗线。牢记下图中并发分岔、并发汇合、监护表达式、分支、流等名词及含义。每个分岔的分支数代表了可同时运行的线程数。活动图中能够并行执行的是在一个分岔粗线下的分支上的活动。

活动图可以根据活动的范围,将活动根据领域、系统和角色等划分到不同的泳道中,使流程边界更加清晰。

image-20250520184008022

在项目不同阶段的作用:

项目阶段

需求分析

描述业务流程

概要设计阶段

描述子系统和组件的交互

软件详细设计

描述一个类方法内部的计算流程

部署图

部署图是软件系统最终物理呈现的蓝图,可以清晰的让相关者了解到软件最终在硬件或者服务器上的分布。

img

在项目不同阶段的作用:

项目阶段

软件概要设计

在设计早期就需要画出来,根据部署图各方可以讨论对这个方案是否认可。只有对部署图达成共识,才能继续后面的细节设计。

UML 图在不同架构风格中的使用

架构风格

常用UML图

应用场景描述

面向对象架构

类图(Class Diagram)

描述系统的静态结构,包括类、属性、方法以及类之间的关系(如继承、关联、聚合等)。

对象图(Object Diagram)

展示特定时刻系统中对象的实例和它们之间的关系。

顺序图(Sequence Diagram)

描述对象之间的交互顺序,通常用于描述用例的实现过程。

协作图(Collaboration Diagram)

强调对象之间的协作关系,类似于顺序图。

状态图(State Diagram)

描述对象或系统的状态变化。

用例图(Use Case Diagram)

描述系统的功能和用户(参与者)之间的交互。

组件架构

组件图(Component Diagram)

描述系统的组件及其之间的依赖关系,适用于模块、库、服务等。

部署图(Deployment Diagram)

描述系统的物理部署结构,包括节点(如服务器、设备)、部署在节点上的组件等。

数据流架构

活动图(Activity Diagram)

描述系统的业务流程或数据流,表示数据的处理过程和流转路径。

状态图(State Diagram)

描述数据处理状态的变化。

事件驱动架构

顺序图(Sequence Diagram)

描述事件的处理顺序和对象之间的交互。

协作图(Collaboration Diagram)

描述事件发布者和订阅者之间的交互。

活动图(Activity Diagram)

描述事件的处理流程,包括事件的触发、处理和结果。

微服务架构

组件图(Component Diagram)

描述微服务之间的依赖关系。

部署图(Deployment Diagram)

描述微服务的部署方式,例如容器化部署、服务之间的网络拓扑结构等。

层次架构

类图(Class Diagram)

描述层次结构中的类和接口,以及它们之间的继承和依赖关系。

顺序图(Sequence Diagram)

描述不同层次之间调用的顺序和交互。

管道与过滤器架构

活动图(Activity Diagram)

描述数据在管道中的流动和过滤器的处理过程。

组件图(Component Diagram)

描述管道和过滤器组件之间的连接和数据流向。

C/S架构

顺序图(Sequence Diagram)

描述客户端和服务器之间的交互过程。

部署图(Deployment Diagram)

描述客户端和服务器的物理部署结构。

P2P架构

顺序图(Sequence Diagram)

描述对等节点之间的交互过程。

部署图(Deployment Diagram)

描述对等节点的物理部署结构和网络拓扑。

编程工具使用技巧
License:  CC BY 4.0
Share

Further Reading

May 20, 2025

常用的uml类图及其表示方法

介绍了常用的 7种类图

Dec 25, 2022

vmware硬盘占用过大的处理

vmware虚拟机使用一段时间后,容易占用硬盘过多

Aug 31, 2021

Pycharm中的快捷键(win平台)

让代码码的飞起

OLDER

文本切分-语义分割(Semantic Chunking)

NEWER

python中一些很好用的工具类模块

Recently Updated

  • python中一些很好用的工具类模块
  • 常用的uml类图及其表示方法
  • 文本切分-语义分割(Semantic Chunking)
  • dify 并发 及配置优化
  • Typing

Trending Tags

Halo 运维 postgresql 设计模式 linux就该这么学 nas rag odoo python 文本切分

Contents

©2025 刘刚刚的blog. Some rights reserved.

Using the Halo theme Chirpy