Visual Paradigm Desktop | Visual Paradigm Online
Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_TW

UML 类图完全指南:概念、符号与最佳实践

UML9 months ago

UML 类图完全指南:概念、符号与最佳实践

在软件工程中,统一建模语言(UML)类图是系统设计的基石。它是一种静态结构图,通过展示系统的类、属性、操作(方法)以及对象之间复杂的关系来描述系统的架构。无论您是从事从业务角度建模系统的业务分析师,还是规划代码结构的开发人员,理解类图都至关重要。

核心概念

在绘制图表之前,必须理解构成类图的基础元素。

1. 什么是类?

类代表了对系统中具有相似角色的对象组的描述。它包含两个主要特征:

  • 结构特征(属性):这些定义了类的对象“知道”什么。它们表示对象的状态并描述静态特征。
  • 行为特征(操作):这些定义了类的对象“能做什么”。它们描述动态特征以及对象交互的方式。

2. 类符号

标准 UML 符号将类表示为一个分为三个特定区域的矩形:

  1. 类名:位于第一个区域。如果是抽象类,名称以斜体显示。
  2. 类属性:显示在第二个区域。语法通常显示属性名称后跟冒号和类型(例如:”radius : float)。这些对应于代码中的成员变量。
  3. 类操作(方法):显示在第三个区域。这些表示类提供的服务。返回类型位于方法签名之后(例如:”getArea() : double).

3. 类关系

类很少孤立存在。它们通过特定的关系相互连接,每种关系都有独特的图形表示:

  • 继承(泛化):表示“是一个”的关系。它通过引入分类法简化分析,其中子类从父类继承属性和操作。符号:一条实线,末端带有指向父类的空心箭头。
  • 简单关联:两个同级类之间的结构链接。符号:连接两个类的实线。
  • 聚合:一种“部分 – 整体”关系,其中子对象可以独立于父对象存在(例如,车轮是汽车的一部分,但可以独立存在)。符号:在组合端带有空心菱形的实线。
  • 组合:一种强类型的聚合关系,当整体被销毁时,其组成部分也会被销毁(例如,圆内的点)。符号:在组合端带有实心菱形的实线。
  • 依赖:当一个类的定义发生变化可能导致另一个类发生变化时,即存在依赖关系。符号:带开放箭头的虚线。

深入探讨:可见性与多重性

属性和操作的可见性

在面向对象设计中,访问控制至关重要。UML 使用符号来表示可见性:

  • +(公共):可被任何其他类访问。
  • –(私有):仅可由同一类的成员访问。
  • #(受保护):可由同一类的成员及派生类访问。
  • ~(包):可由同一包中的类访问。

多重性

多重性表示每个类的多少个对象参与关系:

  • 1:恰好一个。
  • 0..1:零个或一个。
  • *:多个(零个或多个)。
  • 1..*:一个或多个。

例如,在大学系统中,一名学生可以选修多门课程(0..*),且多名学生可以注册同一门课程。

有效类图的指南

创建清晰且有用的类图需要遵循关于范围和视角的具体指南。

1. 管理系统复杂性

在建模大型系统或业务领域时,应避免将每个实体都建模在单个类图上的诱惑。相反,使用多个类图。将系统划分为多个图有助于理解,每个图作为特定子系统的图形表示。

2. 软件开发生命周期中的视角

类图应随着开发阶段的推进而演进。逐步采用以下三种视角:

  • 概念视角:描述现实世界中的事物。这些图表示所研究领域中的概念,通常与语言无关。
  • 规格视角:描述具有接口的软件抽象或组件,但不承诺具体的实现逻辑。关注软件“做什么”,而不是“怎么做”。
  • 实现视角:描述在选定技术和语言中的具体软件实现。此级别详细说明了实际编码时的类结构。

3. 命名关系

好的关系名称在朗读时应合乎逻辑。例如,“每张电子表格包含若干单元格。”使用小箭头指示阅读方向。此外,定义角色于关联线的两端,以描述类所扮演的目的(例如,表达式充当公式的单元格)。

检查清单:审核您的类图

在最终确定类图之前,请运行此检查清单以确保准确性和可读性:

  • 符号准确性:类是否被划分为三个分区(名称、属性、操作)?
  • 关系逻辑:继承线是否指向父类?聚合/组合线上的菱形是否位于组合(整体)一侧?
  • 可见性检查: 您是否已根据封装需求正确应用了+, -, #、或~到属性和方法上?
  • 多重性定义: 关联的基数(例如,1..*) 对于每个关联是否都清晰明确?
  • 可导航性:箭头是否清楚地表明了哪个类可以确定另一个类的实例?
  • 复杂度检查:图表是否过于拥挤?如果是,是否应将其拆分为多个图表?
  • 视角对齐:详细程度是否与您的当前阶段(概念阶段与实现阶段)相匹配?

UML 类图是可视化系统静态结构的强大工具。通过掌握这些符号和关系,您可以有效地对复杂系统进行建模,弥合业务概念与技术代码之间的差距。

Loading

Signing-in 3 seconds...

Signing-up 3 seconds...