UML统一建模语言概览

什么是UML?

UML(Unified Modeling Language,统一建模语言)是一种标准化的建模语言,用于软件系统的:

  • 可视化
  • 说明
  • 构建
  • 文档化

UML的特点

特点 描述
可视化 提供标准的图形化表示方法
标准化 业界通用的建模标准
文档化 完整的系统设计文档

UML发展历史

时间 事件描述
1994--1996 Grady Booch、James Rumbaugh 和 Ivar Jacobson 开发
1997 被 OMG(对象管理组织)采纳为标准
2005 ISO/IEC 19501 国际标准发布
2017 UML 2.5.1 版本发布

UML图分类结构

UML图分为两大类:结构图行为图


结构图(Structure Diagrams)

  • 类图(Class Diagram)
    • 轮廓图(Outline Diagram)
  • 组合结构图(Composite Structure Diagram)
  • 组件图(Component Diagram)
  • 对象图(Object Diagram)
  • 部署图(Deployment Diagram)
  • 包图(Package Diagram)

行为图(Behavior Diagrams)

  • 活动图(Activity Diagram)
  • 用例图(Use Case Diagram)
  • 状态机图(State Machine Diagram)
  • 交互图(Interaction Diagram)
    • 序列图(Sequence Diagram)
    • 通讯图(Communication Diagram)
    • 交互概览图(Interaction Overview Diagram)
    • 时序图(Timing Diagram)

UML图类型区别与用途总结

结构图(Structure Diagrams)

图类型 主要用途与特点
类图 描述类、属性、方法及类之间的关系,是面向对象设计的核心图。用于静态结构建模。
对象图 展示某一时刻类的实例及其关系,强调对象状态快照,常用于调试或示例说明。
组件图 展示系统的模块组成及依赖关系,适用于软件架构设计,强调模块间接口。
部署图 描述系统在硬件环境中的部署结构,展示节点、设备及其连接关系。
包图 用于组织模型元素,展示包之间的依赖关系,适合大型系统的模块化管理。
复合结构图 展示类的内部结构及其协作关系,适合复杂组件或嵌套结构的建模。

行为图(Behavior Diagrams)

图类型 主要用途与特点
用例图 展示系统功能与用户(参与者)之间的交互,常用于需求分析阶段。
活动图 表示流程或操作的步骤序列,适合建模业务流程、算法逻辑或工作流。
状态图 描述对象生命周期中的状态变化,适合状态驱动型系统,如嵌入式或控制系统。
序列图 展示对象之间按时间顺序的消息交互,强调时间线与调用顺序,适合分析交互过程。
通讯图 展示对象之间的协作关系和消息流,强调结构而非时间顺序,适合补充序列图。
交互概览图 综合多个交互图,展示复杂交互流程的整体结构,适合高层次交互建模。
时序图 展示对象状态随时间变化的图示,强调时间约束与同步,适合实时系统建模。

分类对比简析

  • 结构图:关注系统的静态结构,如类、组件、部署等,适合架构设计与模块划分。
  • 行为图:关注系统的动态行为,如流程、交互、状态变化,适合需求分析与行为建模。
相关推荐
小林有点嵌4 小时前
UML之活动图学习
服务器·学习·uml
余栀丶17 小时前
Microsoft Edge 禁止更新
microsoft·edge
shizhenshide18 小时前
隐形杀手:无感验证(Invisible CAPTCHA)的工作原理与存在性检测方法
microsoft·验证码·ezcaptcha
XXYBMOOO1 天前
全面解析 Qt `QMessageBox` 类及其常用方法
开发语言·qt·microsoft
宠..1 天前
为单选按钮绑定事件
运维·服务器·开发语言·数据库·c++·qt·microsoft
阿闽ooo1 天前
抽象工厂模式实战:用C++打造家具生产系统(附UML图与完整代码)
c++·设计模式·抽象工厂模式·uml
yangshuo12811 天前
心灵宝石MCP部署完全指南:AI IDE积分零损耗的实现方案
ide·人工智能·microsoft
Moshow郑锴1 天前
SpringBoot 内置 CollectionUtil:实战用法速览,告别空指针!
windows·spring boot·microsoft
Channing Lewis1 天前
vault分生产和dev吗?也就是说是否支持在一个azure app中创建vault,但是分为生产和dev,而不是为生产和dev分别创建一个app
microsoft·azure