架构基础掌握——UML之时序图建模

在工作中遇到这样的业务场景(我自己遇到的):

    负责老项目改造问题,有段接口的后端逻辑过于复杂和缺少前人的说明(前人可能有坑),上级担心会出相同的问题,会让你最好写一个说明材料什么的(可能他也不懂,只知道其中或多或少有坑),那么本篇文章的技能也许你就会用到

趁着下载文件的时间写点东西,废话不多说,直接开整!

准备工作

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作为项目某些接口说明图片,美滋滋!

猜你喜欢

转载自blog.csdn.net/qq_40650378/article/details/87917281