UML箭头汇总+IDEA绘制UML类图详细教程+chatGPT辅助生成UML类图教程

这篇具有很好参考价值的文章主要介绍了UML箭头汇总+IDEA绘制UML类图详细教程+chatGPT辅助生成UML类图教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html

一、UML基础知识

1.UML简介

Unified Modeling Language (UML)又称统一建模语言或标准建模语言。
各个箭头的含义:
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他们的主要用途简介:

1.用例图:对系统的使用方式分类.

2.类图:显示类和它们的相互关系。

3.对象图:只显示对象及它们的相互关系。

4.活动图:显示人或对象的活动,其方式类似于流程图。

5.状态机图:显示生命周期比较有趣或复杂的对象的各种状态。

6.通信图:显示在某种情形下对象之间发送的消息。

7.顺序图:显示与通信图类以的信息,但强调的是顺序,而不是连接。

8.包图:显示相关的类如何组合,对开发人员有用。

9.部署图:显示安装已完成系统的机器、过程和部署制品。

10.组件图:显示可重用的组件(对象或子系统)及期接口。

11.交互总图:使用顺序图喧赤活动的务个步骤。

12.时间图:显示消息和对象状态的准确时间限制。

13.复合结构图:显示对象在聚合或复合中的相互关系,显示接口和协作的对象

常用的 UML 图可分静(态)图、动(态)图两类,静态图主要描绘软件的静态结构,而动态图主要描绘软件的动态行为。
常用 UML 动态图(5 个):用例图,活动图,状态机图,序列图,通信图。
常用 UML 静态图(4 个):类图,包图,部署图,构件图。

2.UML类图

在所有UML图中,类图是使用频率最高的UML图。
类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。

类图主要关系有:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

2.1 泛化

【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种, 即有老虎的特性也有动物的共性.

【箭头指向】:带三角箭头的实线,箭头指向父类

2.2 实现(Realization)

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

【代码体现】:类实现接口成员

【箭头指向】:带三角箭头的虚线,箭头指向接口

idea反向生成plantuml,数据库,IDEA,uml,chatgpt

2.3 关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

上图,表示企业和员工的关联关系,员工都属于一个企业

除此之外,关联关系允许互相关联,比如夫妻关系,可以互相关联。也允许自关联,即自己也是自己的成员之一。

2.4 聚合(Aggregation)

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

                聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。 

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向整体

idea反向生成plantuml,数据库,IDEA,uml,chatgpt

2.5 组合(Composition)

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

               组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。 

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

2.6 依赖(Dependency)
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

例如:程序员需要依赖计算机
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

3.vs2013\2015 中Uml类图的操作

在.NET开发中,我们可以使用VS自有的功能方便设计类图,VS2013旗舰版和VS2015企业版都有建模工程,下面介绍一下如何使用VS建模

(1)在VS中新建,选择”建模项目“,如下:
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

(2)打开建模项目,增加一个UML类图

idea反向生成plantuml,数据库,IDEA,uml,chatgpt

(3)打开新建的UML类图文件,通过工具栏建立类、接口等,并创建关系

idea反向生成plantuml,数据库,IDEA,uml,chatgpt

(4)将设计好的UML类图,生成代码

idea反向生成plantuml,数据库,IDEA,uml,chatgpt

(5)查看生成代码

idea反向生成plantuml,数据库,IDEA,uml,chatgpt

(6)逆向(由代码生成类图)

在VS中,我们可以将代码很方便的生成UML类图,如下
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

3.总结

主要介绍了uml多种图的初步介绍,在着重介绍了下UMl类图,后面会和大家在依次介绍一些常用的Uml图。

idea反向生成plantuml,数据库,IDEA,uml,chatgpt
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

二、IDEA如何生成类图

1.安装 PlantUML

安装步骤 File -> Settings -> Plugins 搜索 PlantUML ,找到 PlantUML integration 并安装。
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

2.安装Graphviz渲染类图

1.在Graphviz官网下载Graphviz;
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
2.双击安装包直接下一步进行安装;
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

idea反向生成plantuml,数据库,IDEA,uml,chatgpt

3.Graphviz环境变量配置

在开始里面搜索编辑系统环境变量
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

打开电脑系统属性选择高级 -> 环境变量添加path变量,变量值为之前安装路径下的bin目录。
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

4.cmd验证安装是否成功

环境变量配置完成之后win+Rdot打开 cmd 输入:dot -version,出现版本号则表示安装成功。
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

5.PlantUML文档创建

重启IDEA 即可创建 PlantUML File。在任意目录下右键–>New–>PlantUML File,以类图为例,先点击“class”,意为要生成的是类图,再输入文件名,回车,puml文件会新建在该目录下,默认有puml代码。
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
生成的图和代码如下:
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

6.IDEA与Graphviz集合

打开IDEA,点击FIle–>Settings,搜索PlantUML,点击Browse选择Graphviz–>bin–>dot.exe,点击Apply–>OK。
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

uml类图的常见语法和功能

详细的见plantuml官网 类图的语法和功能详细教程

uml类图符号
@startuml
abstract        abstract
abstract class  "abstract class"
annotation      annotation
circle          circle
()              circle_short_form
class           class
class           class_stereo  <<stereotype>>
diamond         diamond
<>              diamond_short_form
entity          entity
enum            enum
exception       exception
interface       interface
metaclass       metaclass
protocol        protocol
stereotype      stereotype
struct          struct
@enduml

uml语言对应的图:
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

类和类之间的关系:

类之间的关系是用以下符号定义的。idea反向生成plantuml,数据库,IDEA,uml,chatgpt

示例:

idea反向生成plantuml,数据库,IDEA,uml,chatgpt

关系上的标签

在关系之间使用标签来说明时, 使用 :后接 标签文字。
对元素的说明,你可以在每一边使用 “” 来说明.
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
在标签的开始或结束位置添加< 或 >以表明是哪个对象作用到哪个对象上。
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
详情见官网文档。

三、chatGPT辅助生成UML类图教程

今天笔试的时候碰到一道让画类图的题目,按照以前的老方法用visio画太慢, chatGPT又不能直接生成图,所以用这个IDEA的插件试试,自己写UML语句太麻烦,用chatGPT辅助试试。题目如下:

XXX是我们公司的重要客户,它主要生产制造X产品, X产品主要的特征是宽度和颜色。当客户下单时,订单会包含产品类型信息,以及承诺交期信息。生产信息
X产品的生产包括3个步骤:cutting->folding-> packaging。
每个步骤可以使用的机器:cutting(CM1,CM2),folding(FM-IV, FM-X, FM-IX),packaging(PM)
每个步骤必须完成后才能开始下一个步骤
各订单从上工序设备转移至下工序设备的运输时间是10分钟
设备上的切换时间取决于当期订单类型与该设备处理的上一个订单类型(宽度和颜色)的差异,宽度或颜色变化都会导致工艺切换时间5分钟
排产决策:
确定订单的各生产步骤应该在那个设备上加工
确定各设备上订单的生产加工顺序
主要业务指标:
提高按时交货率
提高设备利用率
减少设备空闲时间和工艺切换时间

1.告诉chatGPT帮我生成PlantUML的类图
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
idea反向生成plantuml,数据库,IDEA,uml,chatgpt
idea反向生成plantuml,数据库,IDEA,uml,chatgpt

chatGPT生成的语句:

@startuml

class Customer {
  + 名称: String
}

class Order {
  + 订单类型: String
  + 承诺交期: Date
  + 获取订单信息(): OrderInfo
  + 客户: Customer
}

class Product {
  + 产品类型: String
  + 特征: String
  + 获取产品信息(): ProductInfo
}

class Machine {
  + 设备名称: String
  + 设备状态: String
  - 当前订单: Order
  + 开始生产订单(order: Order): void
  + 结束生产(): void
  + 计算工艺切换时间(previousOrder: Order): int
}

class ProductionStep {
  + 步骤名称: String
  + 所需设备: Machine
  + 订单: Order
  + 分配订单到设备(machine: Machine): void
  + 计算加工时间(): int
  + 转移订单至下一步骤(nextStep: ProductionStep): void
}

class ProductionSchedule {
  + 订单列表: List<Order>
  + 设备列表: List<Machine>
  + 生产步骤列表: List<ProductionStep>
  + 生成生产计划(): ProductionPlan
  + 计算交货率(): float
  + 计算设备利用率(): float
  + 减少设备空闲时间和工艺切换时间(): void
}

class Transportation {
  + 运输时间: int
  + 计算运输时间(): int
}

class SwitchingTime {
  + 切换时间: int
  + 计算切换时间(previousOrder: Order, currentOrder: Order): int
}

class Metrics {
  + 按时交货率: float
  + 设备利用率: float
  + 设备空闲时间: int
  + 计算业务指标(): MetricsInfo
}

Customer --|> Order : 下订单
Order --|> Product : 包含产品
Machine --|> Order : 处理订单
ProductionStep --|> Machine : 使用设备
ProductionStep --|> Order : 包含订单
ProductionSchedule --|> Order : 包含订单
ProductionSchedule --|> Machine : 包含设备
ProductionSchedule --|> ProductionStep : 包含生产步骤
Metrics --|> ProductionSchedule : 包含生产排程
Transportation --|> Order : 包含订单
SwitchingTime --|> Order : 包含订单

@enduml

复制到IDEA中:

idea反向生成plantuml,数据库,IDEA,uml,chatgpt
保存图片导出为png格式。
idea反向生成plantuml,数据库,IDEA,uml,chatgpt文章来源地址https://www.toymoban.com/news/detail-773327.html

到了这里,关于UML箭头汇总+IDEA绘制UML类图详细教程+chatGPT辅助生成UML类图教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UML-类图和类图转化为代码

    提示:文章详细的讲解了类图的四种关系,以及每种关系如何转化为对应的代码。 依赖关系 是一种 使用关系 ,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。 依赖关系使用一个 带箭头的虚线 表示, 箭头指向

    2024年02月02日
    浏览(38)
  • UML的类图规则

    public:+号 private:-号 protected:#号 类图多重关系: 泛化关系: 概念:也就是继承关系。 表示方式:用带空心三角形的直线来表示。 例子:动物和猫,人和老师 关联关系: 概念:用于表示一类对象与另一类对象之间的联系。 子关系: 双向关联: 表示方式:一条直线 例子:客

    2024年02月13日
    浏览(46)
  • UML类图学习

    第一层表示类名(斜体表示抽象类) 第二层表示该类属性和字段 第三层表示该方法 注意:属性、字段或方法前面+表示Public -表示Private #表示protected,如果是静态的可以在前面加上static。 抽象类: 普通类: 第一层表示接口名称。 第二层表示接口方法。 还有一种方法是棒棒

    2024年01月23日
    浏览(42)
  • UML类图(二)

    相信希望,相信自己 上一章简单介绍了 设计模式的原则(一), 如果没有看过,请观看上一章 本文参考文章: 常见UML符号详解 UML (Unified modeling language) 统一建模语言,是一种用于软件系统分析和设计的语言工具, 它用于帮助软件开发人员进行思考和记录思路的结果。 如: 修饰符

    2024年02月09日
    浏览(40)
  • UML--类图的表示

    1.1 访问属性 + : public - : private # : protected 1.2 接口与抽象类 斜体 表示抽象类和抽象方法 Interface 类表示接口 1.3 类图示意 Mclass - val: int + getVal(): int 2.1 实现关系 空心三角形和虚线组成 B实现A,则三角形尖尖朝向A,在三角形底边引一条虚线再连接B。 2.2 泛化关系 is a 关系, 继承关系

    2024年02月05日
    浏览(53)
  • UML 类图

    用动物园的类图结构来举例,先抽象化动物类如图所示: 一个类图包括类名、属性和行为,类名不用解释,在介绍属性和行为前,先了解一下访问权限: ‘ - ’ private:只有类内部的成员才能访问 ‘ + ’ public:类内部和类外部都能访问 ‘ # ’ protected:类内部和它的子类才

    2024年01月20日
    浏览(46)
  • 什么是统一建模语言(UML)UML与UML类图的基本概念

    UML(统一建模语言)是一种通用的建模语言,用于描述软件系统的结构、行为和交互。它提供了一组符号和规则,用于创建可视化的图形模型,帮助开发人员、设计师和利益相关者之间进行沟通和理解。 UML起源于20世纪90年代初,由James Rumbaugh、Grady Booch和Ivar Jacobson等知名软件

    2024年02月16日
    浏览(59)
  • UML-类图和对象图

    目录 类图概述: 1.类: 2.属性: 3.类的表示: 4.五种方法: 类图的关系: 1.关联 2.聚合 3.组合 4.依赖 5.泛化 6.实现 对象图概述: 1. 对象图包含元素: 2. 什么是对象 3.对象的状态可以改变: 4.对象的行为 5.对象标识: 类和对象的区别: 类图(Class diagrams):用于定义系统中的类,包括描

    2024年02月13日
    浏览(40)
  • 设计模式(1) - UML类图

    从这一节开始,我们将一起学习设计模式。我们的学习目标是什么呢? 了解常用设计模式以及它们的使用场景; 分析实际工程中设计模式的使用,揣摩实际意图,了解作者设计思路; 尝试运用设计模式迭代、重构自己的代码; 提升软件架构设计思路。 最近在阅读 Android 源

    2024年02月09日
    浏览(34)
  • 【UML建模】类图(Class Diagram)

    在我们的日常学习、工作、考试以及面试的过程中,都会使用到类图,它是一种表示系统中的类、接口、属性和方法等静态结构的图形语言,常用于 面向对象的软件设计、分析 ,对技术实现起到指导作用,是架构师的常用工具之一。 通过类图,可以更好地理解系统的结构和

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包