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 天前
PlantUML——状态图
uml·plantuml·状态图
吴声子夜歌2 天前
PlantUML——序列图
uml·plantuml·序列图
吴声子夜歌2 天前
PlantUML——活动图
uml·plantuml·活动图
吴声子夜歌3 天前
PlantUML——类图(一)
uml
吴声子夜歌3 天前
PlantUML——类图(二)
uml·plantuml·类图
吴声子夜歌3 天前
PlantUML——对象图
uml·plantuml·对象图
吴声子夜歌4 天前
PlantUML——用例图
uml·plantuml
rolt6 天前
PlantUML描述《分析模式》第4章企业财务观察(1)
产品经理·架构师·uml·系统工程
KobeSacre7 天前
UML 学习
学习·uml
hssfscv9 天前
软件设计师2021上、下上午题错题解析+2022上、下下午题训练5道 练习真题训练16
笔记·设计模式·uml