UML 类图介绍
在UML类图中,箭头和线的样式用于表示类与类之间的关系。以下是各种关系及其对应的箭头和线的含义:
1, 关联(Association):
箭头:普通箭头(实心箭头或空心箭头,通常是实心箭头)。
线:通常是直线,连接两个类的关联关系。
含义:表示两个类之间的静态关系,表示一个类与另一个类之间的连接。关联是一种比较强的关系,表明两个类之间存在关联,但不一定是紧密耦合的。
2, 聚集(Aggregation):
箭头:带空心菱形的箭头。
线:通常是直线,连接一个整体与其部分。
含义:表示整体与部分之间的关系,整体可以包含部分,但部分可以独立存在。聚集表示一种弱关系,整体的生命周期不依赖于部分的生命周期。
3, 组合(Composition):
箭头:带实心菱形的箭头。
线:通常是直线,连接一个整体与其部分。
含义:表示整体与部分之间的关系,整体包含部分,部分不能独立存在,它们的生命周期是紧密耦合的。组合表示一种强关系,整体的生命周期取决于部分的生命周期。
4, 依赖(Dependency):
箭头:带箭头的虚线。
线:通常是虚线,连接一个使用另一个类的类。
含义:表示一个类的实现或行为依赖于另一个类。依赖是一种比较弱的关系,表示类之间的一种使用关系,当一个类的变化可能影响到另一个类时,它们之间存在依赖关系。
使用 Doxygen 从源代码生成 UML 类图
1, 安装Doxygen:首先,需要安装Doxygen工具。可以从Doxygen的官方网站(https://www.doxygen.nl/download.html)下载并安装适合的操作系统版本。
2, 配置Doxyfile:Doxygen使用名为Doxyfile的配置文件来指定需要生成的文档和设置。在项目根目录下创建一个名为Doxyfile的文件。可以使用以下命令在项目根目录生成默认的Doxyfile:
doxygen -g Doxyfile |
3, 配置Doxyfile中的参数:打开Doxyfile文件,并设置以下参数:
1)INPUT
:指定源代码目录,你可以在这里列出你希望生成UML类图的源代码目录。
2)GENERATE_UML
:设置为YES,允许Doxygen生成UML图。
3)UML_LOOK
:设置为YES以生成较为简洁的UML类图(可选)。
4)UML_LIMIT_NUM_FIELDS
:设置生成的UML图中类的最大字段数量(可选)。
5)UML_LIMIT_NUM_RELATIONS
:设置生成的UML图中类之间的最大关系数量(可选)。
注意:确保删除或注释掉EXTRACT_ALL和EXTRACT_PRIVATE等参数,以便Doxygen生成所有类的UML类图。
4, 运行Doxygen:配置完成后,使用以下命令运行Doxygen:
doxygen Doxyfile |
运行完成后,Doxygen将在输出目录中生成文档。
5, 查看生成的UML类图:打开生成的文档,在文档中应该可以找到生成的UML类图,通常以SVG或PNG格式呈现。
请注意,Doxygen生成的UML类图可能相对简单,特别是在大型项目中,因为它主要关注源代码的文档生成。如果需要更复杂的UML图,可能需要使用其他专业的UML建模工具,如Enterprise Architect、Visual Paradigm等。
Mermaid绘制流程图的语法
Mermaid是一种简洁易读的文本描述语言,用于绘制流程图、时序图、甘特图等各种图表。下面是Mermaid绘制流程图的基本语法:
1, 定义节点和连接关系:
1) 使用graph或flowchart关键字开始绘图,然后使用TD(从上到下)或LR(从左到右)来指定节点排列方式。
2) 使用—>定义连接箭头,箭头可以用来连接两个节点。
3) 使用—-定义没有箭头的连接线。
节点标识符通常由字母、数字、下划线和连字符组成。
2, 定义节点的形状和样式:
1) 使用[ ]来定义方形节点。
2) 使用[ ]]来定义圆角矩形节点。
3) 使用(( ))来定义圆形节点。
4) 使用{ }来定义菱形节点。
5) 使用样式选项来更改节点的外观,如style、class和stroke等。
3, 添加子图:
1) 使用子图可以在一个节点内部绘制更复杂的流程图。
2) 使用subgraph关键字开始子图,然后在其中定义节点和连接。
3) 使用end关键字结束子图。
下面是一个示例Mermaid流程图的代码:
graph TD; |
在上面的示例中,我们定义了几个节点,例如(开始)、[处理A]、{ }、((结束))等,并用箭头—>表示连接关系。
注意,Mermaid语法不区分大小写,并且注释以%%开头。
命令行生成
非常可惜的是官网在生成图片的时候特别慢,有的时候试了十几次,没错,是十几次,都没有生成出来PNG图片,一开始以为是自己网络问题导致的,后面发现,无论网络好不好都生成不了,推荐使用命令行的方式来生成,首先配置好命令行下所需的环境
npm install -g @mermaid-js/mermaid-cli |
然后创建文件后缀名为.mmd
, 采用如下命令行即可生成PNG图片
mmdc -i test.mmd -o blue.png -w 1080 -h 3600 -t forest -b transparent |
参考
[1]. chatGPT 的回答