UML与PlantUML简介

news/2024/7/24 11:31:44 标签: uml

UML与PlantUML

    • 1、UML与PlantUML概述
    • 2、PlantUML使用


1、UML与PlantUML概述


UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言,独立于任何具体程序设计语言

PlantUML是一款开源的UML图绘制工具,支持通过文本来生成图形,使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图等图形的绘制

PlantUML官网:https://plantuml.com/zh/

IDE安装PlantUML integration插件:

在这里插入图片描述

2、PlantUML使用


时序图(Sequence Diagram)是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。我们在学习Oauth2的时候,第一步就是要搞懂Oauth2的流程,这时候有个时序图帮助可就大了。下面我们使用PlantUML来绘制Oauth2中使用授权码模式颁发令牌的时序图

@startuml
'https://plantuml.com/sequence-diagram

title Oauth2令牌颁发之授权码模式

actor User as user
participant "User Agent" as userAgent
participant "Client" as client
participant "Auth Login" as login
participant "Auth Server" as server

autonumber
user->userAgent:访问客户端
activate userAgent
userAgent->login:重定向到授权页面+clientId+redirectUrl
activate login
login->server:用户名+密码+clientId+redirectUrl
activate server
server-->login:返回授权码
login-->userAgent:重定向到redirectUrl+授权码code
deactivate login
userAgent->client:使用授权码code换取令牌
activate client
client->server:授权码code+clientId+clientSecret
server-->client:颁发访问令牌accessToken+refreshToken
deactivate server
client-->userAgent:返回访问和刷新令牌
deactivate client
userAgent--> user:令牌颁发完成
deactivate userAgent

@enduml

关键说明如下:

  • title可以用于指定UML图的标题
  • 通过actor可以声明人形的参与者
  • 通过participant可以声明普通类型的参与者
  • 通过as可以给参与者取别名
  • 通过->可以绘制参与者之间的关系,虚线箭头可以使用-->
  • 在每个参与者关系后面,可以使用:给关系添加说明
  • 通过autonumber我们可以给参与者关系自动添加序号
  • 通过activate和deactivate可以指定参与者的生命线

效果图:

在这里插入图片描述

其他使用参考文章:https://juejin.cn/post/7017988314053492767


http://www.niftyadmin.cn/n/5164523.html

相关文章

新浪股票接口

缺点:历史股价数据不够完整,只能获取最近1023个数据节点。 优点:速度非常快;可以获取行情图片;返回JSON,容易处理;可以获取历史的分价图数据和分时买卖交易列。 方法1:HTTP://HQ.S…

可root设备复制文件到system目录或者子目录下

目标或问题: 在可root的设备中,如何将某个文件拷贝到system/xxxx/xxxx的系统目录下? 解决方法: 首先依次执行以下命令: adb root adb remount 出现如下图所示: 然后执行复制文件推送到设备的命令即可&…

vector中查找复杂的元素

例如&#xff1a; std::vector<std::vector<double>> 或者 std::vector<my_struct> 可以依据这个改编&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; class findx { public:findx(std::vector<double> doublevector) { m_doublevec…

Python - Windows下使用Python脚本同步一个文件夹下的所有文件到另一个文件夹下

Python同步文件 在Windows下使用Python脚本同步一个文件夹下的所有文件到另一个文件夹下 示例代码 import logging import os import shutildef sync_files(src_file_path, dst_dir_path, exclude_list):try:if not os.path.exists(src_file_path):os.makedirs(src_file_pat…

B03_02可转债转股

一、什么是可转债 可转换债券是债券持有人可按照发行时约定的价格将债券转换成公司的普通股票的债券。如果债券持有人不想转换&#xff0c;则可以继续持有债券&#xff0c;直到偿还期满时收取本金和利息&#xff0c;或者在流通市场出售变现。如果持有人看好发债公司股票增值潜…

python目标检测将视频按照帧率切除成图片

python目标检测将视频按照帧率切除成图片 python目标检测将视频按照帧率切除成图片&#xff0c;并且允许放入多个多个视频 完整代码如下&#xff1a; import os import cv2class VideoSplit:"""将视频分帧为图片source_path: 视频文件存储地址result_path&am…

如何使用Pyarmor保护你的Python脚本

目录 一、Pyarmor简介 二、使用Pyarmor保护Python脚本 1、安装Pyarmor 2、创建Pyarmor项目 3、添加Python脚本 4、配置执行环境 5、生成保护后的脚本 三、注意事项与未来发展 四、未来发展 五、总结 本文深入探讨了如何使用Pyarmor工具保护Python脚本。Pyarmor是一个…

【Leetcode】【每日一题】【简单】2609. 最长平衡子字符串

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/find-the-longest-balanced-subs…