0%

UML

简介

  • UML 相关学习笔记
  • UML,全称为 Unified Model Language,即统一建模语言,是由一整套图标组成的,为面向对象系统的产品进行说明,可视化和编制文档的一种标准语言。UML代表了一组最佳工程实践,这些实践已被证明在大型复杂系统的建模中是成功的。
  • UML是开发面向对象软件和软件开发过程中非常重要的一部分。在嵌入式系统涉及中,使用UML建模并书写文档,通常可以起到事半功倍的效果。

UML是什么

UML(Unified Modeling Language,统一建模语言)是一种标准化的建模语言,用于在软件工程中可视化、描述、构建和记录软件系统的设计与结构。它提供了一组图形化的符号和工具,用于在不同层次上表达系统的不同方面,例如需求分析、设计、实现、部署等。


UML 的特点

  1. 标准化: UML 是由 Object Management Group (OMG) 维护的标准,广泛应用于软件工程领域。
  2. 图形化: 通过图表清晰地展示系统的结构和行为,易于理解和沟通。
  3. 通用性: 适用于多种开发方法(如敏捷开发、瀑布模型)和编程语言(如 Java、C++、Python)。
  4. 支持多种视角: 包括静态视角(如类图)和动态视角(如序列图、状态图)。

UML 的用途

  1. 需求分析: 帮助分析系统需求并与利益相关者沟通。
  2. 系统设计: 表达系统的架构和模块化设计。
  3. 开发协作: 提供开发团队之间的沟通工具。
  4. 文档化: 作为项目开发过程中的一部分,记录系统的设计和实现细节。

UML 的主要图表

UML 包括多种类型的图,主要分为两类:结构图行为图

1. 结构图

描述系统的静态结构,包括类、对象、组件及其关系。

  1. 类图(Class Diagram):

    • 描述类及其属性、方法以及类之间的关系(如继承、关联、依赖)。
    • 常用于面向对象设计。
  2. 对象图(Object Diagram):

    • 描述系统在某个时刻的实例对象和它们的关系。
    • 类似于类图的实例化版本。
  3. 组件图(Component Diagram):

    • 显示系统中的组件及其相互依赖关系。
    • 适合表示模块化系统。
  4. 部署图(Deployment Diagram):

    • 描述系统在运行时的硬件和软件部署。
  5. 包图(Package Diagram):

    • 表示类和包的组织结构。

2. 行为图

描述系统的动态行为和交互。

  1. 用例图(Use Case Diagram):

    • 表示系统的功能及其与用户(或其他系统)之间的交互。
    • 适合需求分析阶段。
  2. 序列图(Sequence Diagram):

    • 描述对象之间的消息传递顺序,用于表示交互流程。
  3. 活动图(Activity Diagram):

    • 描述系统的工作流或业务流程,类似于流程图。
  4. 状态图(State Diagram):

    • 描述对象的状态变化和事件驱动的行为。
  5. 通信图(Communication Diagram):

    • 描述对象之间的交互,强调消息传递。
  6. 时序图(Timing Diagram):

    • 描述对象或组件随时间变化的行为。

UML 示例

1. 类图示例

1
2
3
4
5
6
7
8
9
+------------------+
| Person |
+------------------+
| - name: String |
| - age: int |
+------------------+
| + getName(): String |
| + setName(String): void |
+------------------+

2. 用例图示例

1
[User] ----> (Login)

3. 序列图示例

1
2
3
4
User --> System: Login Request
System --> Database: Query User
Database --> System: Return User Info
System --> User: Login Success

UML 的工具

以下是常见的 UML 绘图工具:

  1. Enterprise Architect
  2. Visual Paradigm
  3. StarUML
  4. PlantUML(基于文本描述生成图形)
  5. Lucidchart
  6. Draw.io(免费在线工具)

UML 的优势

  1. 提高团队沟通效率。
  2. 帮助设计人员和开发人员更好地理解系统。
  3. 提供了从设计到实现的清晰路径。
  4. 适用于软件系统的不同规模和复杂度。

通过 UML,可以更高效地规划和管理软件项目的开发过程,特别是在复杂系统中显得尤为重要。

startuml (收费)

visual paradigm

感谢老板支持!敬礼(^^ゞ