UML 类图教程:带有示例的抽象类

UML 图中类是什么?

A UML 中的类 图是用于创建对象或对象集的蓝图。类定义对象可以做什么。它是创建各种对象并在系统中实现其行为的模板。UML 中的类由一个矩形表示,其中包含带有类名、属性和操作的行。

什么是类图?

A 类图 软件工程中的类图是一种静态结构,通过显示类、属性、操作及其相互关系来概述软件系统。此图在单独的指定部分中包含类名、属性和操作。类图有助于构建软件应用程序开发的代码。

类图定义系统中对象的类型以及它们之间存在的不同类型的关系。它提供了应用程序的高级视图。这种建模方法可以与几乎所有面向对象方法一起运行。一个类可以引用另一个类。一个类可以有自己的对象,也可以从其他类继承。

类图的好处

  • 类图说明了非常复杂的信息系统的数据模型
  • 在研究实际代码之前,它提供了应用程序结构的概述。这可以轻松减少维护时间
  • 它有助于更​​好地理解应用程序的总体原理图。
  • 允许绘制详细图表,突出显示需要编程的代码
  • 对开发人员和其他利益相关者有帮助。

UML 类图的基本元素

UML 类图的基本元素是:

  1. 班级名称
  2. Attributes
  3. 营运部

班级名称

UML 中的类名

类的名称仅在类的图形表示中才需要。它出现在最上面的隔间中。类是对象的蓝图,可以共享相同的关系、属性、操作和语义。类呈现为一个矩形,包括其名称、属性和操作,它们位于不同的隔间中。

在表示一个类时必须注意以下规则:

  1. 类名应该始终以大写字母开头。
  2. 类名应该始终位于第一个隔间的中心。
  3. 类名应该始终写成 无所畏惧 格式。
  4. UML抽象类名应该用斜体格式书写。

Attributes

属性是类的命名属性,用于描述正在建模的对象。在类图中,此组件位于名称部分的正下方。

UML 中的属性

派生属性是根据其他属性计算得出的。例如,可以根据学生的出生日期轻松计算出学生的年龄。

UML 中的属性

属性特征

  • 这些属性通常与可见性因素一起写出。
  • 公共、私有、受保护和包是四种可见性,分别用 +、-、# 或 ~ 符号表示。
  • 可见性描述的是类的属性的可访问性。
  • 属性必须有一个有意义的名称,以描述它在类中的用途。

关系

主要有三种 UML 中的关系:

  1. 依赖
  2. 概论
  3. 协会

依赖

依赖关系是指两个或多个类之间的关系,其中一个类的更改可能会导致另一个类的更改。但是,它总是会创建较弱的关系。依赖关系表示一个类依赖于另一个类。

在以下 UML 类图示例中,Student 依赖于 College

UML 中的关系

概括:

UML 中的关系

泛化有助于将子类与其超类联系起来。子类从其超类继承而来。泛化关系不能用于模拟接口实现。类图允许从多个超类继承。

在这个例子中,Student 类是从 Person 类泛化的。

协会:

这种关系表示类 A 和类 B 之间的静态关系。例如,一名员工为某个组织工作。

以下是一些关联规则:

  • 联想大多是动词或动词短语或名词或名词短语。
  • 它应该被命名以表明附加在关联路径末尾的类所扮演的角色。
  • 反身关联必须具备

在这个例子中,显示的是学生和大学之间的关系,即学习。

UML 中的关系

多重

UML 中的关系

多重性是与属性相关的因素。它指定在初始化类时创建多少个属性实例。如果未指定多重性,则默认情况下将一个视为默认多重性。

假设某学院有 100 名学生。该学院可以有多名学生。

聚合

聚合是一种特殊的关联类型,它模拟了聚合体与其部分之间的整体-部分关系。

UML 中的关系

例如,类 college 由一个或多个 student 组成。在聚合中,所包含的类永远不会完全依赖于容器的生命周期。在这里,即使 student 不可用,college 类仍将保留。

组成:

UML 中的关系

组合是一种特殊类型的聚合,当一个类是另一个类的一部分时,它表示两个类之间的强所有权。

例如,如果学院由学生班组成。学院可以包含许多学生,但每个学生只属于一个学院。因此,如果学院不运作,所有学生也会被移除。

聚合与组合

聚合 组成成分
聚合表示子类可以独立于其父类而存在的关系。例如:汽车(父类)和汽车(子类)。因此,如果您删除汽车,子汽车仍然存在。 组合显示关系,其中子项永远不会独立于父项而存在。例如:房屋(父项)和房间(子项)。房间永远不会分离成房屋。

抽象类

它是一个具有操作原型但没有实现的类。也可以有一个抽象类,其中没有声明任何操作。抽象对于识别类中的功能很有用。让我们考虑一个抽象类的例子。假设我们有一个名为 motion 的抽象类,其中声明了一个方法或操作。在抽象类中声明的方法称为 移动 ().

任何对象(例如汽车、动物、机器人等)都可以使用此抽象类方法来改变当前位置。将此抽象类方法与对象一起使用非常有效,因为没有为给定函数提供实现。我们可以以任何方式将其用于多个对象。

在 UML 中,抽象类的表示法与类的表示法相同。类与抽象类之间的唯一区别在于类名严格采用斜体字体书写。

抽象类不能被初始化或实例化。

抽象类符号
抽象类符号

在上面 抽象类符号,只有一个抽象方法,可供类的多个对象使用。

UML 类图示例

创建类图是一个简单的过程。它不涉及很多技术细节。下面是一个例子:

ATM 系统非常简单,客户只需按下一些按钮即可收到现金。但是,任何 ATM 系统都需要通过多个安全层。这有助于防止欺诈并向银行客户提供现金或需求详细信息。

下面给出一个 UML 类图示例:

UML 类图示例

UML 类图示例

还检查: - UML 图:历史、类型、特点、版本、工具

软件开发生命周期中的类图

类图可用于各种软件开发阶段。它有助于从三个不同的角度对类图进行建模。

1.概念视角: 概念图描述的是现实世界中的事物。您应该绘制一个表示所研究领域中的概念的图表。这些概念与类相关,并且始终与语言无关。

2. 规格角度: 规范视角用规范和接口来描述软件抽象或组件。然而,它并不承诺具体的实现。

3.实施角度: 这种类型的类图用于特定语言或应用程序的实现。从实现角度看,用于软件实现。

类图设计的最佳实践

类图是用于软件应用程序开发的最重要的 UML 图。绘制类图时应考虑许多属性。它们代表软件应用程序的各个方面。

这里,绘制类图时应该记住以下几点:

  • 类图的名称必须有意义。此外,它应该描述系统的真实方面。
  • 需要提前确定各个元素之间的关系。
  • 需要明确每个班级的职责。
  • 对于每个类,应指定最少数量的属性。因此,不需要的属性很容易使图表变得复杂。
  • 每当您需要定义图表的某个方面时,都应包含用户注释。绘图结束时,软件开发团队必须能够理解。
  • 最后,在创建最终版本之前,需要在白纸上绘制图表。此外,在准备最终提交之前,还应反复修改。

结语

  • UML 是用于指定、设计和可视化软件系统工件的标准语言
  • 类是对象的蓝图
  • 类图描述系统中对象的类型以及它们之间存在的不同类型的关系
  • 它允许分析和设计软件应用程序的静态视图
  • 类图是用于软件应用程序开发的最重要的 UML 图
  • UML 类图的基本元素是 1)类 2)属性 3)关系
  • 类图在研究实际代码之前提供了应用程序结构的概述。它无疑减少了维护时间
  • 类图对于映射面向对象的编程语言很有用,例如 Java, C++, 红宝石, Python等等。

还检查: - 初学者的 UML 图教程:免费在线学习 UML