用代码画时序图!简直太爽了( 二 )

  • participant:表示普通的参与者,它跟actor的主要区别是:形状不一样
  • database:表示参与者形状是数据库.
  • 显示的顺序是怎么定义的:声明的参与者顺序将是(默认的)显示顺序 。
  • autonumber:可以给参与者添加顺序
  • ->:表示绘制两个参与者之间的信息,如果你希望是虚线,可以使用-->.
  • activate和deactivate:表示参与者的生命线
  • 当然,PlantUML功能挺丰富的,它还可以组合消息,虽然在我的登录时序图还没体现出来. 它提供了alt/else、opt、loop来组合消息.如下:
    @startumlAlice -> Bob: 认证请求alt 登录成功Bob -> Alice: 认证接受else 某种失败情况Bob -> Alice: 认证失败group 我自己的标签Alice -> Log : 开始记录攻击日志loop 1000次Alice -> Bob: DNS 攻击endAlice -> Log : 结束记录攻击日志endelse 另一种失败Bob -> Alice: 请重复end@enduml复制代码对应的时序图如下:
    用代码画时序图!简直太爽了

    文章插图
     
    4. 如何用PlantUML 画UML用例图什么是用例图?
    用例图(英语:use case diagram)是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系 。通过用例图,人们可以获知系统不同种类的用户和用例 。用例图也经常和其他图表配合使用 。
    如何用PlantUML画UML用例图呢?
    你可以先新建一个PlantUML文件,然后选择user case,并定义个文件名
    用代码画时序图!简直太爽了

    文章插图
     
    就会有默认的UNML用例图生成啦
    用代码画时序图!简直太爽了

    文章插图
     
    我挑官网一个用例图demo来介绍吧,代码如下:
    @startumlleft to right directionactor Guest as gpackage Professional {actor Chef as cactor "Food Critic" as fc}package Restaurant {usecase "Eat Food" as UC1usecase "Pay for Food" as UC2usecase "Drink" as UC3usecase "Review" as UC4}fc --> UC4g --> UC1g --> UC2g --> UC3@enduml复制代码对应生成的用例图如下:
    用代码画时序图!简直太爽了

    文章插图
     
    来看下每个关键词的意思:
    • left to right direction:表示从左到右绘制用例图
    • actor Guest as g:定义一个人形参与者,变量别名是g.
    • package Professional:定义一个包package,名字为Professional.package可以用来对用例和角色分组.
    • usecase "Eat Food" as UC1:定义一个用例,别名为UC1.
    • fc --> UC4:表示角色fc和用例UC4关联起来.角色和用例之间的关系,用-->来表示 。
    5. 如何用plantUML 画思维导图什么是思维导图?
    英文是The Mind Map,又名心智导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效同时又很高效,是一种实用性的思维工具 。
    写了一个简单的思维导图,代码如下:
    @startmindmap* 公众号:捡田螺的小男孩,干货面试题** 计算机网络面试题*** TCP/IP十五连问*** 两万字计算机面试题汇总** MySQL面试题** Redis面试题** 大厂面试真题*** 虾皮十五连问*** 五年Oppo后端面试真题*** 腾讯云十五连问@endmindmap复制代码plantUML画思维导图,还是挺简单的,大家可以看下效果
    用代码画时序图!简直太爽了

    文章插图
     
    6. 如何用planUML 画活动流程图什么是活动图?
    动态图(activity diagram,活动图)是阐明了业务用例实现的工作流程 。
    我画了一个简单版的登录活动流程图:
    @startumltitle Activity Diagram of User loginstart:user request login;if (is request param null?) then (N):query user info by username;if (is user infonull ?) then (N):compare the password;if (Is password right?) then (Y):generate a token ,and set it to redis;:response with login success;else(N):response with wrong password code;stopendifelse(Y):response with error userinfo;stopendifelse(Y):response with error param;stopendifstop@enduml复制代码生成的流程图如下:
    用代码画时序图!简直太爽了

    文章插图
     
    活动图关键解释如下: