本文概述
- 类图的目的
- 类图的好处
- 类图的重要组成部分
- 人际关系
- 抽象类
- 如何绘制类图?
- 类图示例
- 类图的用法
它显示了属性, 类, 功能和关系, 以概述软件系统。它在一个单独的区域中构成类名称, 属性和功能, 有助于软件开发。由于它是类, 接口, 关联, 协作和约束的集合, 因此被称为结构图。
类图的目的 类图的主要目的是构建应用程序的静态视图。它是唯一被广泛用于构造的图, 并且可以使用面向对象的语言进行映射。它是最流行的UML图之一。以下是下面给出的类图的目的:
- 它分析和设计应用程序的静态视图。
- 它描述了系统的主要职责。
- 它是组件图和部署图的基础。
- 它包含了正向和反向工程。
- 它可以表示复杂系统的对象模型。
- 通过概述编码之前应用程序的结构, 它减少了维护时间。
- 它提供了应用程序的一般示意图, 以使你更好地理解。
- 它通过突出显示要编程的所需代码来表示详细图表。
- 这对利益相关者和开发人员很有帮助。
- 上部:上部包含类的名称。类是共享相同关系, 属性, 操作和语义的相似对象的表示。给出代表类时应考虑的以下一些规则:
- 将班级名称的首字母大写。
- 将班级名称放在上部的中间。
- 类名必须以粗体格式编写。
- 抽象类的名称应使用斜体格式。
- 中间部分:中间部分构成属性, 这些属性描述了班级的素质。这些属性具有以下特征:
- 这些属性及其可见性因子(公共(+), 私有(-), 受保护(#)和封装(?))一起被写入。
- 属性类的可访问性由可见性因子说明。
- 应该为属性分配一个有意义的名称, 这将解释其在类中的用法。
- 下半部分:下半部分包含方法或操作。这些方法以列表的形式表示, 其中每种方法都写在一行中。它演示了类如何与数据交互。
文章图片
人际关系 在UML中, 关系分为三种类型:
- 依赖性:依赖性是两个或多个类之间的语义关系, 其中一个类的更改导致另一类的更改。它形成了较弱的关系。
在以下示例中, Student_Name取决于Student_Id。
文章图片
- 泛化:泛化是父类(超类)和子类(子类)之间的关系。在这种情况下, 子类是从父类继承的。
例如, 活期帐户, 储蓄帐户和信贷帐户是银行帐户的一般形式。
文章图片
- 关联:描述两个或多个对象之间的静态或物理连接。它描述了关系中有多少个对象。
例如, 部门与学院关联。
文章图片
多重性:它定义了允许的属性实例的特定范围。如果未指定范围, 则将其视为默认多重性。
例如, 多名患者被送入一家医院。
文章图片
聚合:聚合是关联的子集, 表示具有关系。然后是关联。它定义了整体或部分关系。在这种关系中, 子类可以独立于其父类而存在。
该公司拥有许多员工, 即使有一位员工辞职, 该公司仍然存在。
文章图片
组成:组成是聚合的子集。它描绘了父代与其子代之间的依赖性, 这意味着如果删除了一部分, 则另一部分也将被丢弃。它代表了整体关系。
一个通讯录由多个联系人组成, 如果删除该通讯录, 所有联系人都将丢失。
文章图片
抽象类 在抽象类中, 没有任何对象可以是抽象类的直接实体。抽象类既不能声明也不能实例化。它用于查找各个类的功能。抽象类的符号类似于类的符号。唯一的区别是该类的名称用斜体字表示。由于它不涉及给定功能的任何实现, 因此最好将抽象类与多个对象一起使用。
让我们假设我们有一个名为置换的抽象类, 该类内部声明了一个方法, 该方法将被称为drive()。现在, 这个抽象类方法可以由任何对象实现, 例如, 汽车, 自行车, 踏板车, 自行车等。
文章图片
如何绘制类图? 类图最广泛地用于构建软件应用程序。它不仅代表系统的静态视图, 而且代表应用程序的所有主要方面。总体上, 类图的集合表示一个系统。
下面给出了绘制类图时需要记住的一些关键点:
- 为了描述系统的完整方面, 建议给类图一个有意义的名称。
- 对象及其关系应事先确认。
- 必须知道每个类的属性和方法(职责)。
- 应指定最少数量的所需属性, 因为更多数量的不需要的属性将导致复杂的图表。
- 开发人员可以在需要时使用注释来描述图表的各个方面。
- 在生成最终版本之前, 应重绘制图表并对其进行多次修改以使其正确。
文章图片
类图的用法 【UML类图用法解释详细图解】类图用于表示系统的静态视图。它在组件和部署图的建立中起着至关重要的作用。它有助于构造可执行代码以对任何系统执行正向和反向工程, 或者可以说它主要用于构造。它表示使用面向对象语言(例如C ++, Java等)的映射。类图可用于以下目的:
- 描述系统的静态视图。
- 在静态视图中显示每个实例之间的协作。
- 描述系统执行的功能。
- 使用面向对象的语言来构建软件应用程序。
推荐阅读
- UML构建块介绍和用法图解
- UML关联(自反关联和定向关联图解)
- UML关联、聚合与组合详细图解
- UML活动图介绍和用法图解
- UML-架构详细解释
- UML教程入门介绍
- TestNG注解属性用法示例
- TestNG组测试实例详细图解
- Android中为什么主线程不会因为Looper.loop()方法造成阻塞