在工作中遇到这样的业务场景(我自己遇到的):
负责老项目改造问题,有段接口的后端逻辑过于复杂和缺少前人的说明(前人可能有坑),上级担心会出相同的问题,会让你最好写一个说明材料什么的(可能他也不懂,只知道其中或多或少有坑),那么本篇文章的技能也许你就会用到
趁着下载文件的时间写点东西,废话不多说,直接开整!
准备工作
ideal下载uml design的官方插件
下载完成
一 UML时序图基本对象(参与者)
actor(人)
boundary(限定起)
control(控制器)
entity(对象)
database(数据库)
二关键字逻辑
alt/else(判断逻辑)
opt(暂时未使用到)
loop(标识)
par(未使用)
break(类似java的switch语句中用法)
critical(未使用)
group
, 后面紧跟着消息内容(类似java语句中switch关键字)
三常用的字符
-
activate和deactivate,生命线的开启和撤销
-
autonumber +数字(代表数字间隔)和autonumber stop(自动数字取消)和autonumber resume重新开启
-
box "box的名称" #颜色(可填可不填)开启box和end box结束
-
title+标题号(显示主题)
四自我说明
uml时序图 的语法和一般的编程语言语法相同,个人感觉有点类似于html语言,多多熟练下,基本花不了多长时间就可以全部掌握了
五书写实例(懒的话可copy略做修改,就可以使用了)
@startuml
title 发货记录修改列表
collections 发货列表
autonumber 1
actor 用户
box "前端" #LightBlue
participant 发货列表
用户 -> 发货列表: 点击发货记录
participant 编辑界面
activate 编辑界面
发货列表 ->编辑界面:点击修改
end box
box "后端" #LightYellow
activate 控制层 #FFBBBB
编辑界面-->控制层:点击修改按钮(主机锁不同按钮)
autonumber stop
participant 控制层
控制层-->控制层:type类型错误
participant 服务层
控制层-->服务层:分别查询未发货的主机锁\n和已发货的ids
autonumber resume
activate 服务层
participant Dao层
服务层-->Dao层:查询未发货
end box
database 数据库
Dao层-->数据库:分别查询主机和\n锁的未发货list
服务层-->Dao层:查询已发货ids
Dao层-->数据库:分别查询ids的dto
deactivate 服务层
控制层 <--数据库:针对不同的type添加返回不同的列表
编辑界面 <--控制层:针对不同的type添加返回不同的列表
deactivate 控制层
用户->编辑界面:选择主机锁编号
deactivate 编辑界面
用户 ->编辑界面:点击保存
编辑界面-->控制层:保存一条编辑记录\n针对主机锁4个不同接口
activate 服务层
控制层 -->服务层:修改一条编辑记录
服务层-->Dao层:修改一条发货记录
Dao层-->数据库:修改一条记录
autonumber stop
alt old没有
服务层-->Dao层:修改主机锁状态
Dao层-->数据库:分别修改对应\n的编号为发货状态
else old有
alt new没有
服务层-->Dao层:修改主机锁状态
Dao层-->数据库:分别修改old对应\n的编号为未发货状态
else new有
服务层-->Dao层:修改主机锁状态
Dao层-->数据库:采用二分法找出修改成为未发货的,\n新增的已发货的,分别修改
end
end
deactivate 服务层
autonumber resume
数据库-->发货列表: 返回成功
@enduml
六效果图
七扩展说明
放在项目下面可作为后端人员指导,也可以导出PNG作为项目某些接口说明图片,美滋滋!