plantuml使用

plantuml的安装

1.idea安装plantuml的插件
2.安装graphviz,安装路径默认在c盘。

画er图

new->plantuml file ->class
demo:

@startuml
'https://plantuml.com/use-case-diagram
package 订单{
     entity (totalorder) {
            订单总表
            --
            # string id 主键
              string serialNumber 订单编号
              datetime createTime 创建时间
        }
      entity (serviceorder){
      订单模块表
      --
      # string id 主键
      *  string totalorderId 总表主键
      }
      entity (serviceorderdetail){
      模块明细表
      --
      # string id 主键
      *  string serviceorderId 模块表明细
      }
    totalorder "1" -- "n" serviceorder
    serviceorder "1" -- "n" serviceorderdetail
}
@enduml

在这里插入图片描述

@startuml
'https://plantuml.com/use-case-diagram

package 商品模块 {

    entity (spec) {
        商品规格表(字典)
        --
        # id 主键
        spec_code 规格编码
        spec_name 规格名称 如:版本,时间
        spec_type 规格类型 如:商品类,时间类
        sort 排序
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (spu_spec) {
        商品与规格关联表(暂时先根据商品类型写死)
        --
        # id 主键
        * spu_id 商品ID
        * spec_id 规格ID
        spec_code 规格编码 继承自spec表,
        spec_name 规格名称 继承自spec表,可编辑
        sort 排序
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (spu_spec_value) {
        商品规格值表
        --
        # id 主键
        * spu_spec_id 商品与规格关联表ID
        spec_id 规格ID冗余,继承自spu_spec
        spu_id 商品ID冗余
        name 选项名
        spec_name 规格名冗余
        spec_value 规格值
        sort 排序
        delete_token 逻辑删除令牌,兼容唯一索引, 0正常 等于主键值表示已删除
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (spu_spec_value_atom_spu) {
        商品规格值与原子商品(单品/组合)关联表
        --
        # id 主键
        * spu_spec_value_id 商品规格值ID
        * atom_spu_id 单品或组合ID
        spu_id 商品ID冗余
        atom_spu_type 商品类型 1单品,2组合
        atom_spu_num 商品数量
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (spu_spec_value_sku) {
        商品规格值与sku关联表
        --
        # id 主键
        * spu_spec_value_id 商品规格值ID
        * sku_id 商品sku ID
        spu_id 商品ID冗余
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (single) {
        单品表
        --
        # id 主键
        single_code 单品编码
        title 商品名称
        auth_target 授权目标 0 不限,1个人,2门店,3企业
        type 类型 1权限 2渲染券 3其他
        cost_price 成本价
        quotable 是否生成额度 0 否 1是
        tax_code 商品税率编码
        tax_rate 商品税率
        role_id 角色ID
        coupon_code 渲染券编号
        coupon_name 渲染券名称
        total_issued 渲染券发放总数
        delete_token 逻辑删除令牌,兼容唯一索引, 0正常 等于主键值表示已删除
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (combination) {
        组合商品表
        --
        # id 主键
        combination_code 组合编码
        title 组合名称
        auth_target 授权目标  1个人,2门店,3企业
        single_count 单品数
        delete_token 逻辑删除令牌,兼容唯一索引, 0正常 等于主键值表示已删除
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (combination_single) {
        组合商品和单品关联表
        --
        # id 主键
        * combination_id 组合商品ID
        * single_id 单品ID
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (spu) {
        商品表
        --
        # id 主键
        spu_code 商品编码
        spu_type 商品类型 1渲染券 2营销软件 33D软件套餐(定制+渲染)
        title 标题,商品名称
        saleable 是否上架,0下架,1上架
        sales_target 可售卖 1个人,2门店,3企业
        delete_token 逻辑删除令牌,兼容唯一索引, 0正常 等于主键值表示已删除
        is_delete 逻辑删除 0正常 1已删除
    }

    entity (spu_detail) {
        商品详细信息表
        --
        # spu_id 商品ID
        short_intro 商品简介30字内
        detail_intro 详细介绍
        description 商品描述
        content 商品内容
        qa 商品QA内容
        labels 标签,多个使用英文分号隔离
        corner 角标
        base_image 底图
        images 图片url,多个使用英文分号隔离
    }

    entity (sku) {
        sku表
        --
        # id 主键
        * spu_id 商品ID冗余
        sku_code sku编码
        title 标题,商品名称,默认继承自spu
        saleable 是否上架冗余,0下架,1上架 继承自spu
        price 售价
        is_delete 逻辑删除 0正常 1已删除
    }

'    entity (sku_atom_spu) {
'        sku与原子商品(单品/组合)关联表
'        --
'        # id 主键
'        sku_id 具体商品ID
'        atom_spu_id 单品或组合ID
'        spu_id 商品ID冗余
'        atom_spu_type 商品类型 1单品,2组合
'        atom_spu_num 商品数量
'        is_delete 逻辑删除 0正常 1已删除
'    }

    spu_spec "n" -- "1" spu
    spec "1" -- "n" spu_spec
    combination_single "n" -- "1" single
    combination_single "n" -- "1" combination
    spu_spec_value "1" -- "n" spu_spec_value_atom_spu
    spu_spec "1" -- "n" spu_spec_value
    single "1" -- "n" spu_spec_value_atom_spu
    combination "1" -- "n" spu_spec_value_atom_spu
    sku "1" -- "n" spu_spec_value_sku
'    sku "1" -- "n" sku_atom_spu
'    single "1" -- "n" sku_atom_spu
'    combination "1" -- "n" sku_atom_spu
    spu_spec_value "1" -- "n" spu_spec_value_sku
    spu "1" -- "n" sku
    spu "1" -- "1" spu_detail
}


@enduml

在这里插入图片描述

画时序图

时序图中的元素
时序图中包括的建模元素主要有:角色、对象、生命线、控制焦点、消息和Combined Fragments。接下来,分别介绍每一个元素,以及展现它们在Astah中的表现形式

在这里插入图片描述

角色
在这里插入图片描述
图中的小人,就表示一个角色,这里的角色,可以是人,或者是其它的子系统或者系统

对象
在这里插入图片描述
每条生命线上都关联着一个对象,上图中有三条生命线,可以看到有三个对象,但是三个对象的命名方式都是不一样的。在使用Astah画时序图时,选择一个对象,在属性中可以更改这种命名,分别介绍一下这三种命名方式:

显示实例名和类名,方式:实例名:类名;
只显示类名,方式::类名;
只显示实例名,方式:实例名。

其实,三种命名方式,没有特别的要求,哪一种能让阅读该时序图的人一眼就能看明白,就使用哪种,而我一般使用的是第一种和第二种,第一种信息量多,在单例时,可以用来表示;第二种,画时序图时不用刻意的去强调实例名,只需要作出类名就好了;但是,第三种,我一直不知道存在的意义,给你一个实例名,其实从图中真的看不出其的类名。所以,我个人还是建议大家使用第一种和第二种。

生命线
没有什么多说的,从上面的两张图中,我们都可以看到一条向下延伸的虚线,而这条虚线就是表示的生命线,表示一个对象存在的时间

控制焦点
控制焦点是顺序图中表示时间段的符号,在这个时间段内对象将执行相应的操作。用小矩形表示。如下图表示:
在这里插入图片描述

消息
消息一般分为同步消息、异步消息和返回消息;如下图表示
在这里插入图片描述
同步消息就是指消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。
异步消息就是指消息发送者通过消息把信号传递给消息的接收者,然后自己继续活动,不等待接收者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
返回消息就是指消息从过程调用返回

自关联消息
表示方法的自身调用以及一个对象内的一个方法调用另外一个方法,如下图
在这里插入图片描述

demo1

@startuml
title 文件资源管理服务
header 文件资源管理服务功能模块时序图
footer 文件资源管理服务功能模块时序图 2020  

actor 用户 
entity 资源控制台 
participant 文件资源管理服务 order 3
participant 权限系统 order 4 #LightCyan
participant 文件系统 order 5 #LightBlue

autonumber
== 进程 == 
用户 -[#red]>o 资源控制台 : 访问
资源控制台 -[#red]>o 文件资源管理服务 : 资源请求(CURD)
activate 文件资源管理服务 #FFBBBB
文件资源管理服务 -[#GreenYellow]>o 资源控制台 : 资源响应 
deactivate
资源控制台 -[#GreenYellow]>o 用户 : 渲染


||45|| 
autonumber 
== 用户鉴权 ==
用户 -[#red]>o 资源控制台 : 访问
资源控制台 -> 文件资源管理服务 : check pernmission
activate 文件资源管理服务 #FFBBBB
文件资源管理服务 -> 权限系统 : check permission
activate 权限系统 #FFBBBB
权限系统 -> 文件资源管理服务 : check permission result
deactivate
文件资源管理服务 -> 资源控制台 : check permission result
deactivate
资源控制台 -[#red]>o 用户 : 渲染


||45|| 
autonumber 
== 文件资源上传 ==
用户 -[#red]>o 资源控制台 : request
资源控制台 -> 文件资源管理服务 : auth
activate 文件资源管理服务 #FFBBBB
文件资源管理服务 -> 文件系统 : auth
activate 文件系统 #FFBBBB
文件系统 -> 文件资源管理服务 : auht result
文件资源管理服务 -> 资源控制台 : auht result
资源控制台 -> 文件系统 : upload file source
文件系统 -> 资源控制台 : upload file source result
资源控制台 -> 文件系统 : get file info
文件系统 -> 资源控制台 : file info result
资源控制台 -> 文件资源管理服务 : submit file info 
文件资源管理服务 -> 资源控制台 : submit file info result
deactivate
deactivate
资源控制台 -[#red]>o 用户 : display

@enduml

在这里插入图片描述

demo2

@startuml

participant c as "小程序前端"
participant s as "小程序后端服务"
participant u as "用户中心"

c -> s: 1.用户授权登录
activate s
s -> s: 2.根据手机号判断用户是否存在

s -> u: 3.调用户中心获取账号信息
activate u
u -> s: 4.返回账号列表
deactivate u

s -> c: 5.返回账号列表
deactivate s

c -> s: 6.选择一个账号
activate s
s -> s: 7.绑定用户账号
s -> s: 8.生成token登录令牌
's --> c: callback

s -> c: 9.返回
deactivate s

c -> s: 10.填写用户信息
activate s

s -> s: 11.保存用户信息

s -> c: 12.返回
deactivate s

@enduml

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值