Unified Modeling Language,统一建模语言

UML(Unified Modeling Language,统一建模语言)是一种标准化的图形化建模语言,用于可视化、规范和文档化软件系统的设计。UML 提供了一套通用的符号和规则,帮助开发者、架构师和团队成员更好地理解和沟通软件系统的结构和行为。

UML 的主要用途

  1. 需求分析:帮助团队理解系统需求。
  2. 系统设计:描述系统的结构和行为。
  3. 文档化:生成系统设计的文档。
  4. 沟通:促进团队成员之间的协作和理解。
  5. 代码生成:某些工具可以从 UML 图生成代码。

常见的 UML 图类型

UML 包含 14 种图,分为两大类:

  1. 结构图(描述系统的静态结构)

    • 类图(Class Diagram):描述类及其关系。
    • 对象图(Object Diagram):展示对象及其关系。
    • 组件图(Component Diagram):描述系统的组件及其依赖关系。
    • 部署图(Deployment Diagram):展示系统的物理部署结构。
    • 包图(Package Diagram):展示包及其依赖关系。
    • 复合结构图(Composite Structure Diagram):展示类的内部结构。
    • 结构对象图(Structural Object Diagram):展示对象的静态结构。
  2. 行为图(描述系统的动态行为)

    • 用例图(Use Case Diagram):描述系统的功能和用户交互。
    • 活动图(Activity Diagram):展示流程和活动。
    • 状态图(State Diagram):描述对象的状态及其转换。
    • 时序图(Sequence Diagram):展示对象之间的交互顺序。
    • 通信图(Communication Diagram):展示对象之间的交互关系。
    • 交互概览图(Interaction Overview Diagram):结合活动图和交互图。
    • 时序图(Timing Diagram):描述对象随时间的变化。

UML 图的特点

  • 标准化:UML 是一种国际标准(ISO/IEC 19505)。
  • 通用性:适用于各种软件开发方法(如面向对象、敏捷开发等)。
  • 可扩展性:支持自定义符号和规则。
  • 工具支持:许多工具(如 Visio、StarUML、PlantUML)支持 UML 图的绘制。

UML 的应用场景

  • 软件开发:需求分析、设计、文档化。
  • 系统架构:描述系统的整体结构。
  • 业务建模:描述业务流程和规则。
  • 教育和培训:帮助学习者理解系统设计。

以下是一些常见的 UML 图的示例,包括 类图用例图,这些是最常用的 UML 图类型之一。

1. 类图(Class Diagram)示例

类图用于描述系统的静态结构,展示类及其关系(如继承、关联、依赖等)。

示例:图书馆管理系统
plaintext 复制代码
+----------------+         +----------------+         +----------------+
|    Library     |         |     Book       |         |    Member      |
+----------------+         +----------------+         +----------------+
| - books: List  |         | - title: String|         | - name: String |
| - members: List|         | - author: String|         | - borrowedBooks: List |
+----------------+        ---------------- ++         +----------------+
| + addBook(book: Book): void |         | + borrowBook(member: Member): void |
| + removeBook(book: Book): void |         | + returnBook(member: Member): void |
+----------------+         +----------------+         +----------------+
关系:
  • Library 包含多个 Book(一对多关系)。
  • Library 包含多个 Member(一对多关系)。
  • Member 可以借阅 Book(关联关系)。

2. 用例图(Use Case Diagram)示例

用例图用于描述系统的功能和用户(参与者)如何与系统交互。

示例:图书馆管理系统
复制代码
plaintext+----------------+         +----------------+         +----------------+
|    Member      |         |     System     |         |    Librarian    |
+----------------+         +----------------+         +----------------+
       |                          |                          |
       |                          |                          |
       |  +----------------+       |  +----------------+       |
       |  |  Borrow Book   |<-----+  |  Add Book      |       |
       |  +----------------+       +----------------+       |
       |                          |                          |
       |  +----------------+       |  +----------------+       |
       |  |  Return Book   |<-----+  |  Remove Book   |       |
       |  +----------------+       +----------------+       |
       |                          |                          |
       +--------------------------+  +----------------+       |
                                   |  |  Search Book   |       |
                                   +----------------+       |
       |                          |                          |
       +--------------------------+  +----------------+       |
                                   |  |  View Reports  |       |
                                   +----------------+       |
关系:
  • 参与者
    • Member:可以借书和还书。
    • Librarian:可以添加书、删除书、搜索书和查看报告。
  • 用例
    • Borrow Book:成员可以借书。
    • Return Book:成员可以还书。
    • Add Book:管理员可以添加书。
    • Remove Book:管理员可以删除书。
    • Search Book:管理员和成员都可以搜索书。
    • View Reports:管理员可以查看报告。

3. 时序图(Sequence Diagram)示例

时序图用于描述对象之间的交互顺序。

示例:用户登录系统
plaintext 复制代码
Participant User
Participant System
Participant Database

User -> System: Enter username and password
System -> Database: Verify credentials
alt Valid credentials
    Database --> System: Return success
    System --> User: Login successful
else Invalid credentials
    Database --> System: Return failure
    System --> User: Login failed
end
关系:
  • 用户输入用户名和密码。
  • 系统将请求发送到数据库。
    -库 数据验证凭据并返回结果。
  • 系统根据结果向用户反馈。
相关推荐
希赛网2 天前
软考软件设计师常考知识点:(一)计算机组成与体系结构
软考·uml·编程语言·计算机基础·软件设计师
rolt3 天前
[pdf、epub]320道《软件方法》强化自测题业务建模需求分析共279页(202509更新)
产品经理·ddd·架构师·uml·领域驱动设计
攻心的子乐6 天前
软考 UML类图 泛化继承 实现 聚合 组合(最强) 依赖(最弱
uml
攻心的子乐7 天前
软考 UML 用例图 extend扩展关系 include包含关系 泛化继承inherit关系
uml
「QT(C++)开发工程师」18 天前
UML | 最好的类图设计工具结合CSDN天启呈现-领路架构师
数据库·uml·类视图
小鱼儿LY18 天前
软考系统架构设计师之UML统一建模语言
系统架构·软考·uml·架构设计师
workflower1 个月前
GitHub宕机自救指南
测试用例·需求分析·uml·敏捷流程·结对编程
青草地溪水旁1 个月前
Astah UML 中,状态机(State Machine)的建模最合适使用「UML 状态图(State Diagram)」
uml·状态机
Liquad Li1 个月前
UML(统一建模语言)详解
架构·uml
青草地溪水旁1 个月前
UML函数原型中stereotype的含义,有啥用?
c++·uml