首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文掌握UML类图-PlantUML实操

一文掌握UML类图-PlantUML实操

原创
作者头像
唔仄lo咚锵
修改2020-09-22 10:22:28
2K0
修改2020-09-22 10:22:28
举报

UML

UML(Unified Modeling Language,统一建模语言)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。

方便程序员间交流,读别人代码是真的痛苦。

UML主要有以下作用:

  1. 为软件系统建立可视化模型
  2. 为软件系统建立构件
  3. 为软件系统建立文档

UML图分类:

  1. 用例图
  2. 静态结构图:<font color=red>类图</font>、对象图、包图、组件图、部署图
  3. 动态行为图:交互图(时序图与协作图)、状态图、活动图

其中类图是描述类与类之间的关系的,是UML图中最核心的,本文将结合PlantUML展开介绍类图,如果该文章点赞破百,则将会更新其他UML图分类

类图

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。

  • 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。

依赖

只要是在类中用到了对方,那么他们之间就存在依赖(Dependency)关系。如果没有对方,连编绎都通过不了的那种。比如

1) 类中用到了对方

2) 是类的成员属性

3) 是方法的返回类型

4) 是方法接收的参数类型

5) 方法中使用到

泛化

泛化关系(Generalization)是实际上是继承关系,是依赖关系的特例,如果A类继承了B类,那么A和B存在泛化关系。

实现

实现关系(Realization)实际上就是类和接口的关系,表示类是接口所有特征和行为的实现,也是依赖关系的特例。

关联

关联关系(Association)实际上是类和类之间的联系,是一种拥有的关系,它使一个类知道另一个类的属性和方法,也是依赖关系的特例。

关联具有<font color=red>导航性</font>:即双向关系或单向关系,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。nm、1n等标识可无。

聚合

聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开,部分可以脱离整体单独存在,属于关联的特例,可用箭头标识导航性,使用带空心菱形的实线来表示:

组合

组合关系(Composition)也是整体与部分的关系,但是整体与部分不可以分开,部分可以脱离整体单独存在,属于关联的特例,可用箭头标识导航性,使用带实心菱形的实线来表示:

怎么画类图?

说了这么多,那么怎么画类图呢?且继续往下看。

环境准备

在IDEA安装PlantUML插件,以便操作演练,当然了如果不想安装,也可以使用PlantUML在线网站跳过本节

安装Graphviz

首先需要安装Graphviz可视化图形软件提供依赖支持。

  1. 下载 https://www2.graphviz.org/Packages/development/windows/10/
  2. 安装 注意修改安装路径,其余默认下一步就好。
  3. 配置变量 我的电脑->属性->高级系统设置->环境变量->path->新建
M0NzA4,size_16,color_FFFFFF,t_70#pic_center)
M0NzA4,size_16,color_FFFFFF,t_70#pic_center)
  1. 测试

安装PlantUML

打开IDEA,File->settings->plugins,搜索uml,安装PlantUML

安装好后重启IDEA,就能新建PantUML File了。

PlantUML

定义

如果未定义就直接使用,默认为类。

类型

关键字

图例

class

抽象类

abstract

接口

interface

接口

棒棒糖样式

枚举

enum

注释

annotation

泛型

加<?..>

方法

访问范围

符号

private

-

protected

/#

package private

~

public

+

此外通过修饰符{static}、{abstract},可以定义静态、抽象的方法或者属性。

关系

'>'表示箭头,‘|>’表示三角箭头,'o'表示空心菱形,'*'表示实心菱形

‘.’表示虚线,‘-’表示实线,一个是水平方向,两个以上是竖直方向。

  • 关系上的标识 在关系之间使用标签来说明时, 使用 :后接 标签文字; 对元素的说明,你可以在每一边使用 "" 来说明。

这样一来就能表示各种关系的线了。

关系

符号

图例

依赖

.>

泛化

->

实现

.|>

关联

-

聚合

-o

组合

-*

注释

  • 可以使用note left of , note right of , note top of , note bottom of这些关键字来添加备注
  • 还可以在类的声明末尾使用note left, note right,note top, note bottom来添加备注
  • 单独用note这个关键字也是可以的,使用 .. 符号可以作出一条连接它与其它对象的虚线

后记

画类图还有更多细节和扩展可参考PlantUML文档:https://plantuml.com/zh/class-diagram

踩了很多坑,比如安装Graphviz时没有执行”dot -c“指令,idea报错全网还找不到,从入门到放弃

如果该文章点赞破百,则将会更新其他UML图分类。

原创不易,请勿转载本不富裕的访问量雪上加霜

博主首页:https://blog.csdn.net/qq_45034708

如果文章对你有帮助,记得关注点赞收藏❤

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • UML
  • 类图
    • 依赖
      • 泛化
        • 实现
          • 关联
            • 聚合
              • 组合
              • 怎么画类图?
                • 环境准备
                  • 安装Graphviz
                  • 安装PlantUML
                • PlantUML
                  • 定义
                  • 方法
                  • 关系
                  • 注释
              • 后记
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档