文章摘要: 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言。
相关信息
外部相关文章
- PlantUML官网及在线文档:https://plantuml.com/zh/
- 语言指导PDF: https://plantuml.com/zh/guide
- Github仓库: https://github.com/plantuml/plantuml
内部相关文章
介绍
简要说明
- 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言。
- UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。
- 我们在进行项目的时候,通过使用 UML 的面向对象图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序等一些逻辑思维。
主要功能
- 可视化表示:UML提供了一套丰富的图形表示,使得复杂的软件系统可以直观地展现出来。
- 沟通工具:UML图作为沟通的桥梁,帮助不同背景的人理解系统的设计和架构。
- 系统分析:UML支持对系统的功能、行为和结构进行分析。
- 设计蓝图:UML图可以作为软件系统设计的蓝图,指导开发过程。
- 文档化:UML图可以作为项目文档的一部分,记录系统的设计和决策过程。
注意事项
- 不要过度使用:不要为每个细节都创建UML图,这会导致文档过多且难以维护。
- 保持更新:随着项目的发展,UML图需要及时更新以反映最新的设计变更。
- 一致性:在整个项目中保持UML符号和命名的一致性。
- 简洁性:确保UML图简洁明了,避免不必要的复杂性。
- 培训和使用:团队成员应该接受UML的培训,以确保正确使用和理解UML图。
适用场景
- 需求分析:在项目开始时,使用UML图来捕捉和分析用户需求。
- 系统设计:在系统设计阶段,UML图帮助定义系统的架构和组件。
- 项目管理:项目经理可以使用UML图来跟踪项目的进度和设计变更。
- 代码生成:某些工具可以从UML图自动生成代码框架。
- 教学和学习:在教育环境中,UML图用于教授面向对象的概念和软件工程的原则。
UML图的分类
- 结构型:类图、对象图、包图、组件图、部署图。
- 行为型:用例图、活动图、状态图、序列图、通信图、交互概览图
详细总结:Language-UML-语法格式
结构型
类图
简要说明
- (Class Diagram)
- 类图是UML中用于描述系统中类的结构和类之间关系的一种静态结构图。
- 展示了系统中的类、接口、属性、操作以及它们之间的关系。
- 是面向对象设计中使用最广泛的图之一。
主要功能
- 定义类:类图中可以定义类的名称、属性(字段)和操作(方法)。
- 描述关系:类图可以展示类与类之间的关系,包括继承(泛化)、实现、关联、聚合和组合等。
- 接口表示:类图可以表示接口以及类对接口的实现。
- 属性和操作可见性:类图中可以指定属性和操作的访问修饰符(如公有、私有、受保护)。
- 泛化和多态:类图支持泛化(继承)和多态的概念,可以表示类之间的继承关系和接口的多态性。
注意事项
- 避免过度复杂:类图应该清晰简洁,避免包含过多的细节,以免难以理解。
- 命名规范:类和关系的命名应该清晰、一致,遵循项目的命名规范。
- 关系清晰:确保类之间的关系清晰明确,避免模糊不清的关系表示。
- 更新维护:随着项目的发展,类图需要及时更新以反映代码的最新状态。
- 抽象层次:类图应该在不同抽象层次上展示信息,以适应不同的观众(如开发者、项目经理、客户)。
适用场景
- 系统分析和设计:在软件开发的早期阶段,类图用于分析和设计系统的静态结构。
- 文档化:类图可以作为项目文档的一部分,帮助理解系统的结构和设计决策。
- 沟通工具:类图可以作为开发团队之间沟通的工具,确保大家对系统结构的理解一致。
- 代码生成:某些工具可以从类图中生成代码框架,简化开发过程。
- 重构:在重构代码时,类图可以帮助理解现有的类结构,指导重构的方向。
对象图(Object Diagram)
- 定义: 描述在类图中所定义的类和接口的实例的静态快照。
- 用途: 展示系统在特定时刻的实例和它们之间的关系。
组件图(Component Diagram)
- 定义: 描述系统的物理组件以及它们之间的依赖关系。
- 用途: 显示系统组件的静态视图,帮助理解组件之间的依赖。
部署图(Deployment Diagram)
- 定义: 描述在执行环境中软件和硬件的配置。
- 用途: 显示系统的物理部署视图,包括节点和它们之间的关系。
行为型
用例图(Use Case Diagram)
- 定义: 描述系统功能和用户(actors)之间的交互。
- 用途: 帮助理解系统的功能需求,定义系统的边界。
活动图(Activity Diagram)
- 定义: 描述业务流程和工作流中的操作序列。
- 用途: 显示从一个活动到另一个活动的控制流,类似于高级别的流程图。
状态图(State Diagram)
- 定义: 描述类的对象可能的状态以及状态之间的转移。
- 用途: 分析和设计对象的行为,特别是对于具有复杂生命周期和状态变化的对象。
时序图(Sequence Diagram)
- 定义: 描述对象之间交互的时间顺序。
- 用途: 显示对象之间的交互顺序,强调时间顺序。
协作图(Collaboration Diagram)
- 定义: 描述对象之间的协作关系和交互。
- 用途: 强调对象之间的消息传递,虽然它不如时序图那样强调时间顺序。
PlantUML工具
- PlantUML是一个开源的Java程序,能够根据PlantUML语言生成对应的图片。
- PlantUML是一个通用性很强的工具,可以快速、直接地创建各种图表。
- PlantUML 可以与其他各种工具无缝集成,以增强您的工作流程。