2019年12月6日

draw.io如何创建类图

统一建模语言(Unified Modeling Language)或UML表示法可能是您在软件开发中发现的程序的最广为人知且经常使用的可视表示形式。在开始编程之前,有各种各样的图表可帮助您指定数据和过程。它们可以帮助您弄清需求和限制,加快实施速度,提供全面测试的指南,并防止错误在整个软件开发过程中潜行。

如果您不使用它们,为什么不呢? 😉

在以前的文章中,您已经看到了两个行为图示例(用例模型和活动图)。我想跳到UML图的另一类-结构图。类图可能是最著名的结构图,它指定程序中的数据结构及其关系。

当然,您可以按照自己喜欢的顺序开发不同的UML图。但是,当您处理以后的图时,尤其是其他类别的图时,几乎可以肯定会发现您遗漏了一些东西。需要更正或修改您以前的图表是完全正常的–将其视为并行图表!

类图不仅用于编程

例如,业务分析师可以对资产和与其相关联的流程的公司结构进行建模。

UML类图符号

毫不奇怪,程序的类会进入类图,包括它们的属性(变量)和方法(函数)。这些图构成了面向对象编程的基础。

班级

每个类由一个框表示,每个框具有三个部分,这些部分彼此堆叠,格式如下。只有班级名称是必填项

  • 班级名称
  • 属性– 名称:类型
  • 操作– 方法名称(参数列表):返回值类型

看一下我在以前的文章中使用过的“习惯跟踪”应用示例,您将看到每个习惯都有几个属性和操作。

提示:属性或方法名称前面的符号表示其可见性-公共(+),受保护(#),私有(-),派生(/)或程序包(〜)。

遗产

当子类具有与其父类相同的操作和属性,但又添加了一些自己的额外功能时,即为继承。继承是面向对象编程的核心功能。您可以通过在子类到父类之间绘制未填充的箭头来在图中表示这一点。

提示:抽象类可以通过用斜体表示该类的名称来表示。

社团协会

当类之间存在链接时,您可以通过多种方式进行指示。

  • 双向:两个类都知道关联性– 在类之间画一条实线,没有箭头。
  • 一种方式:只有一个班级知道另一个班级–使用开放的箭头。例如:FailedStudentsList将了解Student类,但是Student类不知道FailedStudentsList类。
  • 相关性:当一个类的更改导致另一类的更改时,它们是相关的。使用虚线显示依赖性。
  • 聚合:当一个类包含另一个类的多个实例,但是即使删除容器类,这些实例仍然存在,那么就是聚合。使用空心菱形指示容器等级。
  • 组成:这类似于聚合,但是当删除容器类时,其他类的实例也将被删除。容器类是另一个类的实例的“组成”。使用实心菱形指示容器类别。
  • 多重性:表示每个类别与另一个类别相关的数量。可以是零个或多个(0 .. *),一对一(1..1)或1到特定的数字(1..5)。

还有很多其他方式来指示关联,包括关联类,自反关联,包等。为了全面了解UML中的建模类,IBM提供了很棒的教程

在draw.io中创建类图

我将所有这些组件放在一起,以在“习惯跟踪器”应用程序中对数据结构进行建模。

在draw.io中,确保已启用UML形状库–单击左侧面板中的More shape…,启用UML形状库,然后单击  Apply

在draw.io中打开此图

draw.io可以与Jira和Trello一起使用

draw.io可作为Jira应用程序Trello Power-Up使用,  因此您可以轻松地在软件开发和业务流程上进行协作,并保持图表及其相关的问题。在开发所有需求和实施规范时,您可以与同事协作并保持图表为最新。

需要一些帮助?

  • 不想从数据结构开始吗?如果您像我一样,可能会发现从用例图活动图开始比较舒适–您可以使用draw.io轻松创建这些图和其他UML图。
  • 您正在开发移动应用程序吗?为什么不  使用draw.io模拟您的移动应用程序
  • 这是您第一次绘制图表吗?逐步完成我们的  自我指导培训课程,以熟悉draw.io的功能。