当前位置: 首页 > news >正文

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)示例

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

示例:图书馆管理系统
+----------------+         +----------------+         +----------------+
|    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)示例

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

示例:用户登录系统
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
关系:
  • 用户输入用户名和密码。
  • 系统将请求发送到数据库。
    -库 数据验证凭据并返回结果。
  • 系统根据结果向用户反馈。

相关文章:

  • centOS 安装和配置docker
  • 《探秘鸿蒙分布式软总线:开启无感发现与零等待传输新时代》
  • 3.7 字符串基础
  • 树莓派第5代主板连接cis摄像头
  • Python学习笔记(列表相关操作)
  • 供应商涨价,项目如何控制采购成本
  • ⑫交换机引流设备案例
  • What Was the “Game Genie“ Cheat Device, and How Did It Work?
  • ViT 模型讲解
  • 【Java八股】
  • 3.2.2.2 Spring Boot配置视图控制器
  • 机器学习项目三:颜色检测
  • Java老鼠迷宫(递归)---案例来自韩顺平老师讲Java
  • Neo4j GDS-11-neo4j GDS 库中相似度算法实现
  • 鸿蒙开发-ArkUi控件使用
  • 重学Redis:Redis常用数据类型+存储结构(源码篇)
  • 5.5 GitHub数据秒级分析核心揭秘:三层提示工程架构设计解析
  • 日志文件爆满_配置使用logback_只保留3天日志文件_每天定时生成一个日志文件---SpringCloud工作笔记206
  • 如何制定有效的风险应对计划
  • C++ std::string_view介绍及性能提升分析
  • 商务部:新一轮服务业扩大开放一次性向11个试点省市全面铺开
  • 人民日报头版:各地扎实开展学习教育,一体推进学查改
  • 白兰花香飘京城,上海文化体验项目点亮中华民族共同体之美
  • 长安汽车辟谣抛弃华为,重奖百万征集扩散不实内容的背后组织
  • 新闻1+1丨全球首场人机共跑马拉松,有何看点?
  • 坚定信心主动应变局谋发展,上海市领导走访调研外资外贸企业