UML(统一建模语言)详细笔记

文章目录

UML(统一建模语言)详细笔记

一、UML概述

UML(Unified Modeling Language,统一建模语言)是一种用于软件系统可视化建模的标准语言,由Booch、Rumbaugh和Jacobson三人于1990年代中期整合各自的建模方法而成,后被OMG(对象管理组织)采纳为标准。

核心特点:

  • 是一种可视化的建模语言,不是编程语言
  • 用于描述、可视化、构造和文档化软件系统的工件
  • 独立于具体的编程语言和开发过程
  • 适用于面向对象分析与设计(OOA/OOD)

二、UML的三大构造块

UML的基本构造块由三部分组成:事物(Things)关系(Relationships)图(Diagrams)


三、4种事物(Things)

事物是UML模型中最基本的组成单元,分为以下四类:

1. 结构事物(Structural Things)

模型中最静态的部分,代表概念上或物理上的元素。

结构事物 说明
类(Class) 具有相同属性、操作、关系和语义的对象集合
接口(Interface) 一组操作的集合,定义服务的契约
协作(Collaboration) 描述一组对象共同完成某个功能的结构
用例(Use Case) 描述系统对外提供的功能单元
活动类(Active Class) 拥有自己的控制线程的类
构件(Component) 可替换的物理模块,如代码文件、库
节点(Node) 运行时存在的物理元素,如服务器、设备
2. 行为事物(Behavioral Things)

模型中的动态部分,代表时间和空间上的变化。

  • 交互(Interaction):描述对象之间为实现特定目的而进行的消息传递
  • 状态机(State Machine):描述一个对象在其生命周期内响应事件的状态变迁
3. 分组事物(Grouping Things)

用于将模型元素组织成更大的单元。

  • 包(Package):一种通用的分组机制,用于将相关的类、用例等组织在一起,类似于文件夹
4. 注释事物(Annotational Things)

模型的解释说明部分。

  • 注解(Note):用于对模型元素添加注释、约束或补充说明,用虚线连接到被注释的元素

四、4种关系(Relationships)

关系定义了事物之间的连接方式:

1. 依赖(Dependency)
  • 含义:一个事物的变化会影响另一个事物的语义
  • 表示 :虚线箭头 -->
  • 示例:一个类的方法参数引用了另一个类
2. 关联(Association)
  • 含义:描述一组对象之间的结构连接关系
  • 表示 :实线 ------
  • 特殊形式:聚合(空心菱形)、组合(实心菱形)
  • 示例:教师与学生之间的教学关系
3. 泛化(Generalization)
  • 含义 :一般与特殊的关系,即继承关系
  • 表示 :实线 + 空心三角箭头 ------▷
  • 示例:学生类继承自人类
4. 实现(Realization)
  • 含义:一个类实现接口所定义的契约
  • 表示 :虚线 + 空心三角箭头 --▷
  • 示例:一个具体类实现某个接口

五、14种图(Diagrams)

UML 2.0定义了14种图 ,分为结构图行为图两大类。

结构图(7种)------描述系统的静态结构
序号 图名 用途说明
1 类图(Class Diagram) 描述类、接口及其之间的关系,是OO设计的核心
2 对象图(Object Diagram) 类图的实例快照,展示某一时刻的对象及其链接
3 构件图(Component Diagram) 建模可替换的物理模块及其依赖关系
4 部署图(Deployment Diagram) 描述软件在硬件节点上的分布和映射
5 包图(Package Diagram) 展示系统的命名空间和模块划分
6 组合结构图(Composite Structure Diagram) 描述类的内部结构及协作关系
7 制品图(Artifact Diagram) 描述系统中物理制品(文件、库、可执行文件等)及其关系
行为图(7种)------描述系统的动态行为
序号 图名 用途说明
1 用例图(Use Case Diagram) 从用户视角捕获系统功能需求和边界
2 序列图(Sequence Diagram) 按时间顺序展示对象之间的消息交互
3 通信图(Communication Diagram) 展示对象间的消息传递与协作关系(侧重结构)
4 状态机图(State Machine Diagram) 刻画对象生命周期中的状态变迁
5 活动图(Activity Diagram) 描述业务流程或算法的控制流和数据流
6 交互概览图(Interaction Overview Diagram) 由多个小型交互图组合而成的概览图
7 计时图(Timing Diagram) 沿时间轴可视化对象状态变化与时间约束

交互图 :序列图、通信图、交互概览图和计时图统称为交互图,它们都用于描述对象之间的交互行为,只是侧重点不同。


六、5种视图(4+1视图模型)

UML支持从不同视角描述系统,采用4+1视图模型

视图 关注的方面 主要使用的图
用例视图 系统功能需求 用例图
逻辑视图 系统的功能设计 类图、对象图、状态机图
进程视图 并发与同步 类图、通信图、序列图
实现视图 代码组织结构 构件图
部署视图 软件到硬件的映射 部署图

七、3种扩展机制

UML提供了三种机制来增强其表达能力:

  • 构造型(Stereotype) :扩展UML词汇,定义新的构造块,用 << >> 表示,如 <<entity>><<service>>
  • 标记值(Tagged Value) :为模型元素添加额外的属性信息,如 {version = "1.0"}
  • 约束(Constraint) :扩展或修改UML元素的语义规则,用 { } 表示,如 {readOnly}

八、知识体系总结

复制代码
UML知识体系
├── 3大构造块:事物、关系、图
├── 4种事物:结构事物、行为事物、分组事物、注释事物
├── 4种关系:依赖、关联、泛化、实现
├── 14种图
│   ├── 结构图(7种):类图、对象图、构件图、部署图、包图、组合结构图、制品图
│   └── 行为图(7种):用例图、序列图、通信图、状态机图、活动图、交互概览图、计时图
├── 5种视图(4+1):用例视图、逻辑视图、进程视图、实现视图、部署视图
└── 3种扩展机制:构造型、标记值、约束

记忆口诀:UML = 4事物 + 4关系 + 14图 + 5视图 + 3扩展,其中14图分结构7 + 行为7,行为图中序列图、通信图、交互概览图、计时图合称"交互图"。

相关推荐
ouynagda32 分钟前
Linux 进程与线程学习笔记
linux·笔记·学习
GlueNa2SiO39 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
Capricorn198810 小时前
解决全网抄 Karpathy 导致的 LLM Wiki 污染?基于知芽 Notebook Skill 的 raw/ 笔记法排障指南
大数据·论文阅读·人工智能·笔记·论文笔记
壹玖玖肆11 小时前
openGauss使用笔记
笔记
宵时待雨11 小时前
linux笔记归纳17:传输层协议UDP
linux·笔记·udp
噜~噜~噜~12 小时前
操作系统笔记-2.3.2.1 进程互斥的软件实现方法
笔记·操作系统
云贝教育-郑老师13 小时前
【麒麟服务器系统交付:一个DBA的六年信创实战笔记】
服务器·笔记·dba
玖玥拾14 小时前
LeetCode 392 判断子序列
笔记·算法·leetcode
摇滚侠14 小时前
《SpringBoot 3:入门与应用实战》第 7 章 AOP 思想与实现 阅读笔记 15
java·spring boot·笔记