课时106:类图

简介: 本文介绍了UML(统一建模语言)及其在类图设计中的应用,重点讲解了使用Power Designer工具进行类图设计的具体步骤。UML通过图形化形式描述程序类关系,常见的设计工具有Rational Rose和Power Designer。文中详细说明了如何在Power Designer中新建类图、定义类的属性和方法、创建接口及其实现关系,并生成代码。此外,还介绍了将现有代码转换为类图的方法,以简化开发流程。总结指出,在实际项目中,通常会先编写代码再生成类图,以避免繁琐的设计过程。

课时106:类图

摘要:

1.UML具体内容

2.类图描述

3.Power Designer设计类图

 

01.UML具体内容

 

UML 是统一的建模语言,本质就是利用图形化的形式来实现程序类关系的描述。在之前已经画出了大量的图形,这些图形都是按照 UML标准进行的,并且最早使用最广泛的设计工具: Rational Rose,而后出现越来越多的设计工具,而像 Power Designer 也可以实现这些类图的定义。


现在大多数人不再定义类图,一般是写完代码之后再将其转换出来,如果先画出类图再写代码,这个项目就会很难再进行下去。

 

02.类图描述

 

一般情况如果要想进行类结构的描述,往往可以使用三层的结构来表示,如图:

image.png

如果要是一个普通类的名称,往往直接编写即可,而如果是抽象类,往往使用斜体描述。“类名称”,所以为了更加清楚的描述,往往在抽象类上再加一个“ Abstract ”


对于类中的属性可以使用“访问权限 属性名称:属性类型”的格式来进行定义,而对于访问权限基本上重点只考虑三个:  Public(+)、Protected(#)、Private(-)。一般情况下属性都是在减号后面描述。

类中的方法采用的格式“访问权限方法名称():返回值”结构来描述,一般的方法都是 Public 声明。


如果每一次像这种操作形式画图会发现过于复杂繁琐,如下所示:

 

image.png

所以在画图时,可以通过一些工具进行作图,推荐使用 Recent Models

 

03.Power Designer设计类图

 

开发者可以随意找到一些小的免费的开发工具,本次使用的是 Power Designer 工具进行设计。

 

3.1新建结构


操作方式如下所示:

打开 Power Designer 后,点击新建一个 UML Class Diagram

image.png

如果现在要新建结构的话,只能新建类结构。

 

image.png

 

3.2接口画法


点击 UML Class Diagram 之后会出现一个工具条

image.png

其实UML中的图形很复杂,但是现在展示的是它最初的一代UML。现在的设计开发讲究稍微小巧一些。

image.png

image.png 这是类, image.png 这是接口。

关于接口的画法,有两种形式的画法。

1第一种用下面的图所示,最上方蓝色框是接口ILink,用Interface作为标注。

image.png

2第二种:严格来讲,接口最标准的画法,如下图所示:

image.png

上方的圈就表示一个接口,横线下方可以写上接口名称,比如这个接口叫 ILink

正常开发而言,这里的 Abstract ILink<E> 要变成斜体的 Abstract ILink<E>,并且第二种画法没有 {abstract}

 

3.3创建类方法属性


接下来做一个简单的操作形式画法

先写一个类,点击 image.png ,届时图中出现类,如下图:

image.png

右击出现类属性,设置 Name 和 Code

image.png

在进行类图定义的时候可以设置类中的属性 (Attributes)、类中支持的方法 (Operations)

image.png

 

image.png

这里Name是在图中可以显示的,Code String 的代码,Data Type 是 String 类型的。Visibility 正常属性都是 Private。设置好后点击确定。如图所示:

image.png

接下来定义方法

image.png

在类图之中进行方法创建的时候必须先创建方法,而后通过属性才

以设置它的参数。如下图所示:

image.png

点击后,会出现操作窗口。设置好相应数值点击应用。

image.png

接下来设置部门信息,继续设置类属性,如图:

image.png

设置好类设置参数,如图:

image.png

以上操作设置好后,继续设置获取部门信息,如图:

image.png

设置好后,点击下方 Add 设置构造方法,点击复制构造器:

image.png

届时出现了一行无参数的构造,这时需要添加参数,如图:

image.png

设置好后,再次在属性中添加一个构造(复制构造器)设置个无参的,如图:

image.png

此时便实现了一个类中方法的定义。点击应用确定出现类,如图:

image.png

这就是一个程序类,点击保存。

 

3.4生成代码


接下来将它生成代码,ctrl+g,存桌面点击确定。

 

image.png

这时会发现没有生成代码,是因为还没有设置 Selection ,如下图:

image.png

但是程序开始报错,是因为之前建立的时候没选择好正确的语言

image.png

这里选择 Java 语言,如图:

image.png

完成后再做一次输出,在桌面如图所示: image.png

接下来创建一个接口,点击工具条中的 image.png ,如图: image.png

接下来再设置接口属性,如图:

image.png

再设置一个方法,如图:

image.png

返回的是一个接口方法,String 

如图: image.png

接口下面可以定一个抽象位,点击工具条中的 image.png ,出现如下图:

image.png

再设置属性,如下图:

image.png

要想描述抽象位,需要勾选右下方 Abstract,如下图:

image.png

点击确定后,接下来定义抽象位和接口之间的关系,抽象位和接口之间的关系是实现位。图中可以这样表示,点击工具条中的 image.png ,然后进行由子拉到父,如下图所示:

image.png

子类实现接口使用的是“三角和虚线”: image.png

类的继承使用的是“三角和实线”: image.png

然后再点击 image.png 简单拉一下,代码执行,如图:

image.png

这就是一个标准的结构描述,关键的是,这个标准结构描述的东西可以形成一个正常的程序,但是,如果要用此结构开发,会比较繁琐。


实际的项目开发之中,如果花费大量的人力进行这样的设计一定是没有意义(一定是无用功),所以一般会将程序的代码通过转换引擎变为图形显示。

 

3.5举例


现在举例一个简单的程序。

将之前的代码做一个转换,首先点击文件,文件下方有一个叫转换引擎,转换引擎里有一个叫对象语言的选项

image.png

image.png

下方有一个转换的目标形式,现在要做的是 Java 语言,所以直接选择 Java 语言,点击确定。弹出窗口,Reverse Engineer Java 这里点击 Add ,找到电脑D盘中的 Mldnjava 文件中的 JavaDemo.java,如图所示:

image.png

如果你的程序类由多个类组成,则需要把这些类全部加进来。点击确定后,如下图所示:

image.png

对于这种结构,可以根据类程序代码把类图反推回来是比较方便的一种。

相关文章
|
6月前
|
人工智能 自然语言处理 安全
学不会编程也能写测试?AI让测试更平权
在传统的软件开发体系中,测试常被划分为“技术型测试”(如自动化、性能、安全)和“业务型测试”(如功能验证、用户体验)。前者掌握技术话语权,后者则更多依赖经验和流程规范。然而,随着大语言模型(LLM)等AI技术的迅猛发展,这一固有格局正被悄然打破:
215 10
|
5月前
|
JSON 安全 定位技术
微信附近人提取v3脚本, 微信附近人id提取技术插件,采集附近人wxid数据工具
本内容介绍微信“附近的人”功能的技术原理与实现方法,基于LBS服务,涉及位置模拟、协议分析及数据解析。通过修改GPS坐标或使用Frida等工具hook位置函数
|
数据采集 运维 DataWorks
DataWorks on EMR StarRocks,打造标准湖仓新范式
本文整理自阿里云计算平台产品专家周硕(簌篱)在阿里云DataWorks on EMR StarRocks解决方案介绍中的分享。介绍了阿里云DataWorks与EMR Serverless StarRocks的结合使用,详细阐述了在数据同步、数据消费、数据治理三大场景中的核心能力。DataWorks作为大数据开发治理平台,提供了从数据建模、数据集成、数据开发到数据治理的全链路解决方案,结合StarRocks的高性能分析能力,帮助企业实现OLAP分析、湖仓一体开发及数据综合治理,满足复杂业务场景下的需求,提升数据处理和分析效率。
|
JSON Java 数据格式
springboot 参数统一处理
springboot 参数统一处理
166 2
|
SQL 安全 前端开发
软件测试指南:从策略到实践
【8月更文第21天】软件测试是为了评估软件的质量并验证其是否符合预期的功能要求而进行的一系列活动。本文将详细介绍软件测试的不同阶段、测试类型、测试策略与计划的制定、以及如何有效地管理与跟踪发现的缺陷。
908 1
|
程序员 uml
UML图 | 时序图(顺序、序列图)绘制
UML图 | 时序图(顺序、序列图)绘制
4145 1
|
uml
IDEA画图神器 PlantUML
IDEA画图神器 PlantUML
581 0
|
安全 Windows
记一次“上传”命令执行的绕过案例
记一次“上传”命令执行的绕过案例
245 0
|
网络协议 Python
Scapy一个强大的 Python 程序(一)
Scapy是Python的网络数据包操作工具,用于创建、分析和发送网络包。启动Scapy需以管理员权限运行`sudo scapy`。在交互式环境中,可构建自定义数据包,如设置IP包的`ttl`、`src`和`dst`。通过`/`叠加协议层,如IP和TCP。发送数据包示例:构造向`www.slashdot.org`的HTTP GET请求。Scapy还能用于嗅探、过滤和修改数据包,功能强大。
260 3
|
人工智能 数据安全/隐私保护
如何实现AI检测与反检测原理
AI检测器用于识别AI生成的文本,如ChatGPT,通过困惑度和爆发性指标评估文本。低困惑度和低爆发性可能指示AI创作。OpenAI正研发AI文本水印系统,但尚处早期阶段。现有检测器对长文本较准确,但非100%可靠,最高准确率约84%。工具如AIUNDETECT和AI Humanizer提供AI检测解决方案,适用于学生、研究人员和内容创作者。