de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

在一篇文章中学习14种UML图

什么是UML?

UML代表统一建模语言,是一种标准化的建模语言,由14种不同类型的UML图组成。

为什么要使用UML?

通过使用UML,软件设计在开发前更容易阅读和理解,从而降低开发风险。同时,它有助于不同开发人员之间的沟通。

UML提供了一种非常丰富的建模语言,使软件开发过程中的不同人员能够获取他们感兴趣的信息。

UML的主要目的可以总结如下:

  • 为用户提供现成的、富有表现力的可视化建模语言,以便他们能够在协作团队中开发并交流有意义的模型。
  • 为核心概念提供可扩展性和特殊化机制。
  • 与特定的编程语言和开发过程无关。
  • 为理解建模语言提供正式的基础。
  • 促进面向对象工具市场的开发。
  • 支持更高层次的开发概念,如协作、框架、模式和组件。
  • 整合最佳实践。

什么是UML图?

  • UML图分为结构图和行为图。
  • 结构图包括类图、配置文件图、组件图、复合结构图、对象图、部署图和包图。
  • 行为图包括活动图、用例图、状态机图和交互图。
  • 交互图进一步分为顺序图、顺序图、通信图和交互概览图。

Overview of the 14 UML Diagram Types

14种UML图

  1. 类图 – 一个类图是一种静态图,通过展示系统的类及其属性和操作,以及对象之间的关系,来描述系统的结构。
  2. 用例图 – 一个用例图由用例、角色及其相互关系组成。它展示了用户如何与系统交互,并定义了用例的规范。
  3. 顺序图 – 一个顺序图是一种对象以顺序方式通信的模型。它展示了场景中涉及的对象、类和角色以及信息的精确顺序。它由属于生命线的垂直线和表示消息的水平线组成。
  4. 活动图 – 一种活动图是一种行为图,通过动作的流程来展示一个场景。它模拟了动作序列、基于条件的决策、并发分支以及各种循环。
  5. 通信图 – 一种通信图以消息的形式展示对象和部分之间的交互,消息由生命线表示。通信图是UML顺序图的一种修改形式,但与之不同的是,其元素不需要水平排列,可以在图中任意位置。
  6. 状态机图 – 一种状态机图描述一个实体(设备、过程、程序、软件、模块等)的状态以及状态之间的转换。条件指定了从一个状态转换到另一个状态的使用时机。
  7. 对象图 – 一种对象图是一种结构化的UML图。它描述系统或其部分在某一特定时间的状态。它模拟实例、它们的值和关系。可用于展示数据结构的示例。
  8. 包图 – 一种包图展示了模型中包之间的依赖关系。它描述了大型项目的结构和组织。
  9. 组件图 – 一种组件图提供了复杂系统的视图。它描述了系统各个部分所提供的和/或需要的接口以及各部分之间的关系。这些部分由组件和其他工件表示。
  10. 部署图 – 一种部署图描述了工件在网络节点上的部署情况。用于展示工件(软件、系统、模块等)在物理节点(硬件、服务器、数据库等)上的位置,以及解决方案中特定部分之间的关系。
  11. 组合结构图 – 该组合结构图展示了分类器的内部结构、其组成部分和端口,通过这些端口它与环境进行通信。它模拟了协作关系,其中每个元素都有其特定的角色。
  12. 交互概览图 – 该交互概览图提供了系统或子系统中交互的高层次视图。它以类似于活动图的方式描述过程,但使用其他交互图和交互引用,而不是动作节点。
  13. 时序图 – 该时序图主要关注时间,描述分类器在时间轴上的变化。时间轴垂直堆叠,时间从左向右增加。
  14. 配置文件图 – 该配置文件图描述并定义了UML语言的扩展。扩展机制允许你将语言适应到特定领域或平台。扩展通过构造型来定义。

什么是类图?

类图是所有面向对象方法的核心建模工具。类图描述系统中对象的类型以及它们之间存在的各种静态关系。它用于表示类、接口以及它们之间的静态结构和关系。

  • 泛化关系是一种继承关系,表示子类继承父类的所有特性和行为。一条实线配有一个三角形箭头,箭头指向父类。
  • 实现 关系是类与接口之间的关系,表示该类是接口所有特性和行为的实现。一条虚线配有一个三角形箭头,箭头指向接口。
  • 关联关系是一种拥有关系,使得一个类能够了解另一个类的属性和方法。一条实线配有一个普通箭头,箭头指向拥有者。双向关联可以有两个箭头,或没有箭头。单向关联有一个箭头。
  • 聚合关系是整体与部分之间的关系,且部分可以独立于整体存在。聚合关系是一种关联关系,属于强关联关系;关联与聚合在语法上无法区分,必须通过具体逻辑关系来判断。实线配以空心菱形,空心菱形指向整体。
  • 组合关系是指整体与部分之间的关系。但部分不能脱离整体而独立存在。它是一种关联关系,比聚合关系更强。用一条实线加实心菱形表示,菱形指向整体。
  • 依赖关系是一种使用关系,即一个类的实现需要另一个类的协助。它用带普通箭头的虚线表示,箭头指向使用者。

 

What is Class Diagram?

什么是用例图?

用例图是一种描述由参与者、用例、边界及其关系组成的系统功能的视图。它用于描述整个系统的功能。

用例图包含以下三种关系:

  • 包含关系使用符号“include”。如果要查看订单列表,需要先登录。
  • 扩展关系使用符号“extend”。基于查询订单列表的功能,可以增加导出数据的功能。
  • 泛化关系中,子用例继承父用例的所有结构、行为和关系。

Use case diagram tutorial lazy bag | Develop Paper

什么是顺序图?

  • 顺序图展示了对象按时间序列进行协作的方式。它展示了在用例的特定场景中,对象如何与其他对象交互。通过描述对象之间发送消息的时间顺序,展示多个对象之间的动态协作。

Sequence Diagram, UML Diagrams Example: Object Creation and Deletion - Visual Paradigm Community Circle

什么是活动图?

活动图描述了特定业务用例的实现过程。它用于表示业务流程或用例的实现。

SysML: How to Use Activity Diagrams to Model System Behavior?

什么是通信图?

通信图描述了发送和接收消息的对象之间的组织关系,强调对象之间的协作关系而非时间顺序。它用于展示不同对象之间的关系。

What is UML Collaboration Diagram?

什么是状态机图?

状态机图对单个对象的行为进行建模,表明该对象在其生命周期中对不同事件的响应顺序。它用于表明指定对象在其生命周期中对不同事件的不同状态做出响应。

All You Need to Know about State Diagrams

什么是对象图?

对象图是类图的一个实例,是系统在某一时刻的详细状态快照。它用于表达在某一时刻两个或多个对象之间的关系。

What is Object Diagram?

什么是包图?

包图是一种结构图,展示了中大型项目中模型元素的排列与组织。它用于表达包与包之间的依赖关系。

Simple Package Diagram Example

什么是组件图?

组件图描述了系统中各组件所提供的接口、端口等,以及它们之间的关系。它用于展示组件之间的依赖关系。

What is Component Diagram?

什么是部署图?

部署图描述了系统内部软件在不同节点上的分布情况。它用于表示软件与硬件之间的映射关系。

Deployment Diagram Notations

什么是组合结构图?

组合结构图描述了“组合结构”的内部结构及其相互关系。这种“组合结构”可以是系统的一部分,也可以是整个系统。它用于表示系统中的逻辑“组合结构”。

What is Composite Structure Diagram?

什么是交互概览图?

交互概览图与活动图类似,它为交互模型提供高层次的抽象。它是活动图的一种变体,其中节点是交互或交互发生的场景。它侧重于描述交互的控制流,也可以展示不同图之间的活动流程。

Interaction Overview Diagram Example

什么是时序图?

时序图用于显示一个或多个元素的值或状态随时间的变化。还展示了定时事件之间的交互以及控制它们的时间和截止时间约束。一种用于表示随时间变化的元素状态或值的视图。

Timing Diagram, UML Diagrams Example: State / Condition lifeline vs General Value lifeline - Visual Paradigm Community Circle

什么是配置文件图?

配置文件图提供了一种通用的扩展机制,用于为特定领域和平台定制UML模型。它用于在特定领域中构建UML模型。

Profile Diagram at a Glance

UML 非常庞大且复杂?

UML 确实是一个非常庞大的主题。UML 提供了大量的图示符号,分为14种不同的UML图类型,每种都有不同的UML模型,服务于不同的目的,并解决开发需求的不同方面。

  • 这14种UML图类型中的每一种都提供了一套丰富的构造和符号,能够满足大多数软件开发项目中的不同需求。
  • UML 规范超过700页,显然被认为过于复杂,对UML的认知和采纳产生了负面影响。
  • 通常,用户倾向于只考虑和使用UML中的一部分图/构造。

学习最重要的UML图和符号

统一建模语言的重要开发者之一格拉迪·博奇指出:“对于80%的软件,只需要20%的UML。”

UML调查*的结果是什么?

我们可以根据以下假设来解读UML调查的结果:如果一种图

  • 被广泛使用,如果其使用率 ≥ 60% 的来源
  • 如果使用率 ≤ 40% 的来源,则使用较少

Activity Diagram Example - Word Processor

制定你的UML学习计划

根据调查中收集的数据,你可以更好地了解如何通过制定有意义的UML学习计划来开启你的UML学习之旅!

统一建模语言(UML)资源:

Leave a Reply

您的邮箱地址不会被公开。 必填项已用 * 标注