首页 > 分享 > PlantUML 实战示例(使用 PlantUML 画用例图、类图、活动图、时序图)

PlantUML 实战示例(使用 PlantUML 画用例图、类图、活动图、时序图)

目录

前言

需求场景

用例图

类图

活动图

时序图

前言

在软件开发的生命周期中,需要先进行设计,最后才是进行具体的编码和测试。设计时就需要画各种 UML 图,有专业的 UML 画图软件,也有很多在线的 UML 画图网站可以来画图,但是这些一般都是可视化界面,通过鼠标拖拽各种组件来画图,在画图时需要不停在键鼠直接来回切换——鼠标拖拽好组件,再用键盘打字补充说明,实际使用体验个人感觉非常难受。

PlantUML 是一个多功能组件,可快速、直接地创建图表。用户可以使用简单直观的语言起草各种图表。使用 PlantUML 就可以使用简单的文字描述来画 UML 图了。

本文演示用 PlantUML 设计一个模块,使用 PlantUML 来画用例图,类图,活动图,时序图。

具体的语法可以直接参考官方文档

使用简单的文字描述画UML图的开源工具。 (plantuml.com)https://plantuml.com/zh/

需求场景

开发一个 api 调用服务,让用户自定义要调用 api 的各种配置,例如 api 的 url 地址,请求方式,query 参数名,header 参数名,body 参数名(表单或者json),api 返参等等,配置完成后,即可提供给其他系统模块进行调用。

api 提供一个调用的接口,其他系统模块调用时按照 api 配置的输入参数名称,传入对应的输入参数值,返回 api 调用模块配置的返参。

调用接口的整体逻辑可以抽象成以下几个步骤

获取 api 配置信息构造请求参数构造请求头构造请求体校验必填字段调用 api校验 api 返回值返回 api 返回值

梳理好需求并将业务逻辑分解后,开始设计 UML。

用例图

PlantUML

@startuml 'https://plantuml.com/use-case-diagram package API模块 { (调用 API) (配置 API) } :系统模块: --> (调用 API) :配置人员: --> (配置 API) @enduml

类图

@startuml 'https://plantuml.com/class-diagram class Service { - apiInfoMapper : ApiInfoMapper - apiQueryMapper : ApiQueryMapper - apiBodyMapper : ApiBodyMapper - apiResponseMapper : ApiResponseMapper + call(Input) : Object } interface ApiInfoMapper {} interface ApiQueryMapper {} interface ApiBodyMapper {} interface ApiResponseMapper {} class ApiDO { - input : Input - field : Object - result : Object + {static} build(Input) : ApiDO + getBaseInfo(ApiInfoMapper) : ApiDO + buildQuery() : ApiDO + buildHeader() : ApiDO + buildBody() : ApiDO + checkRequiredFields(ApiQueryMapper, ApiBodyMapper) : ApiDO + invoke() : ApiDO + checkReturnResult(ApiResponseMapper) : ApiDO + getResult() : Object } note left of ApiDO::input 前端入参 end note note left of ApiDO::field 业务处理过程中的中间变量 end note note left of ApiDO::result 业务处理后的返回结果 end note class Input { - apiId : String - apiQuery : Map<String, Object> - apiHeader : Map<String, Object> - apiBody : Map<String, Object> } Service "1" --> "1" ApiInfoMapper Service "1" --> "1" ApiQueryMapper Service "1" --> "1" ApiBodyMapper Service "1" --> "1" ApiResponseMapper Service ..> Input Service ..> ApiDO Input "1" <-- "1" ApiDO ApiInfoMapper <.. ApiDO ApiQueryMapper <.. ApiDO ApiBodyMapper <.. ApiDO ApiResponseMapper <.. ApiDO @enduml

活动图

@startuml 'https://plantuml.com/activity-diagram-beta start :获取 api 基本信息; if (api 是否存在?) then (true) :构造请求参数; :构造请求头; :构造请求体; if (校验必填字段?) then (true) :调用 api; if (校验 api 返回值?) then (true) :返回 api 返回值; else (false) :抛出错误信息; stop; endif else (false) :抛出错误信息; stop endif else (false) :抛出错误信息; stop endif stop; @enduml

时序图

@startuml 'https://plantuml.com/sequence-diagram participant Client participant Controller participant Service participant ApiDO participant Mapper participant 第三方接口 Client -> Controller ++ : 发起 api 调用请求 Controller -> Controller: 校验入参 Controller -> Service ++ : 委托业务层处理 Service -> ApiDO **: build Service -> ApiDO ++ : 获取 api 基本信息 ApiDO -> Mapper ++ : 查询 api 基本信息 return api 基本信息 Service <-- ApiDO : ApiDO Service -> ApiDO : 构造请求参数 Service <-- ApiDO : ApiDO Service -> ApiDO : 构造请求头 Service <-- ApiDO : ApiDO Service -> ApiDO : 构造请求体 Service <-- ApiDO : ApiDO Service -> ApiDO : 校验必填字段 ApiDO -> Mapper ++ : 查询 query body 配置 return query body 配置 Service <-- ApiDO : ApiDO Service -> ApiDO : 调用 api ApiDO -> 第三方接口 ++ : http 请求 return 接口返回值 Service <-- ApiDO : ApiDO Service -> ApiDO : 校验返回值 ApiDO -> Mapper ++ : 查询返回值配置 return 返回值配置 Service <-- ApiDO : ApiDO Service -> ApiDO: 获取调用结果 Service <-- ApiDO -- : 调用结果 Service --> Controller -- : 调用结果 Controller --> Client -- : 调用结果 @enduml

相关知识

植物图(PlantUML)插件教程
画图神器:在IntelliJ IDEA中使用PlantUML插件实现各种图绘制(UML,类图,时序图等)
网上购物系统详细精炼版(UML, 类图,时序图,数据流图)
drawio使用教程!导入代码一键生图,办公绘图不要太简单!
【UML】交互图(时序图、协作图)
UML设计系列(3):时序图
uml注册和登录的流程图,类图,用例图
UML图详解
景观分析图怎么画
网上购物系统UML图及用例描述文档

网址: PlantUML 实战示例(使用 PlantUML 画用例图、类图、活动图、时序图) https://m.huajiangbk.com/newsview1946799.html

所属分类:花卉
上一篇: 同事用Excel花了半小时做甘特
下一篇: 玫瑰图是什么?如何进行绘制?