Написание документации по программному обеспечению — Plantuml рисует диаграммы вариантов использования и диаграммы последовательности.

Java

задний план

Текущие разработчики программного обеспечения, неизбежным необходимо выводить некоторые документы по проектированию программного обеспечения, программное обеспечение в качестве инженера для выпускников, являются наиболее часто используемыми инструментами Design Tools UML, инструменты использования UML, чтобы нарисовать некоторые цифры, связанные с программным обеспечением, являются важным навыком, но и вывод важно Часть технической документации. Обратный инжиниринг не обеспокоен здесь только обеспокоен быстрыми нарисованиями соответствующей карты, Plantuml является относительно хорошим инструментом. Этот раздел сначала предварительно знакомый с диаграммами дела и диаграммы временных диаграмм.

Знакомство с растением

Официальная домашняя страница сайта

Функции:

Поддержка быстрого рисования

  • Временная диаграмма
  • диаграмма вариантов использования
  • диаграмма деятельности
  • Диаграмма классов
  • Диаграмма компонентов
  • Диаграмма состояний
  • граф объектов
  • Схема развертывания
  • Временная диаграмма

Также поддерживаются диаграммы, отличные от UML:

  • Диаграмма архитектуры
  • Диаграмма Ганта
  • карта разума
  • ER-диаграмма

И менее часто используемые диаграммы:

  • SDL (язык описания спецификации)
  • Каркасный графический интерфейс
  • Ditaa
  • Математическая формула

Нарисовав картинку, вы можете сгенерировать картинку в формате PNG, SVG, Latex;

Деловая сцена

Пользовательские серверные службы проекта x, включая логин пользователя и кредитные модули пользователя;

диаграмма вариантов использования

Описывать системные функции с точки зрения пользователя

грамматика

Схема использования системы

Пример внутренних систем

@startuml

left to right direction

actor : 其它LX提供给TA的后端系统: as otherLxTaBackendService

note top of otherLxTaBackendService
比如tianansp
负责活动和文章的服务
比如tiananseason
负责西游活动的服务
通过dubbo的rpc方法调用
end note

usecase 修改用户积分 as changeUserPoint
usecase 查询用户总积分 as getUserTotalPoint
usecase 登录校验 as getRestContextByAccessToken


otherLxTaBackendService --> getRestContextByAccessToken:获取用户的登录态[RPC]
otherLxTaBackendService --> changeUserPoint:活动增加或者扣减积分[RPC]
otherLxTaBackendService --> getUserTotalPoint: 查询用户当前总积分[RPC]


@enduml

Сгенерированный график:

file

Пример использования внешней системы

@startuml

'left to right default

actor : ta用户: as taUser

usecase  用户登录  as  userLogin
usecase 查询积分明细 as findUserPointDetail
usecase 改变积分 as changeUserPointDetail


note bottom of userLogin
TA用户登录
LX交互的后端系统
LX的saas系统
构造登录态
end note

taUser -right-> userLogin: 登录进LX交付的功能[REST]
taUser --> changeUserPointDetail : 修改积分\n阅读文章\n分享文章\n参加活动[REST]
taUser --> findUserPointDetail : 查询积分\n消费获取\n明细[REST]

@enduml

file

Временная диаграмма (диаграмма последовательности)

Показывает сотрудничество между объектами

грамматика

объект грамматика иллюстрировать
стрелки и линии -> Пунктирная стрелка Идентифицирует обмен сообщениями между участниками
участник актор роль граница с границей объект управления сущность база данных коллекции участник коллекция участник Определить участников
Переименовать участник подробное имя участника в виде аббревиатуры Переименовать участника
Порядок определения участник подробное имя участника порядковый номер порядкового номера Чем меньше серийный номер, тем выше
Участник содержит специальные символы "Участник" в двойных кавычках
стиль стрелки Отсутствует сообщение ->x сплошная стрелка -> пунктирная стрелка -> полусплошная стрелка - полупунктирная стрелка -> 0 в конце стрелки ->o
различные стрелки
цвет стрелки Участник 1- [Определение цвета] -> Участник изменить цвет стрелки
Автоматическая нумерация сообщений autonumber с начала
настраивать title,header,footer заголовок нижний колонтитул заголовок определяется в начале
Условная ветвь комбинированного сообщения alt/else end
условная ветвь
Объединение ветвей цикла сообщений loop end цикл
объединенная группа сообщений group end
группировка
однострочный комментарий расположение заметки : содержание заметки Добавить примечание к сообщению
многострочный комментарий позиция примечания (справа, слева, сверху) новая строка содержание комментария новая строка конец примечания Добавить примечание к сообщению
Изменение формы аннотации hобратите внимание на шестиугольник rобратите внимание на четырехугольник форма примечания
разделитель ==Разделить содержимое примечания== Модуль горизонтального деления
Цитировать ссылка на участника 1 участника 2: ссылка на контент Цитировать
Задерживать | Фиксированная задержка сообщения
пространство 3 вертикальные полосы интервал
активировать спасательный круг активировать участника активировать спасательный круг
Деактивировать линию жизни Деактивировать участника активировать спасательный круг
вернуть возвратный участник вернуть
Создать участника создать участника Идентифицирует созданный объект
горячая клавиша ++Активировать участника --Деактивировать участника **Создать участника! ! уничтожить участника см. примечание о синтаксисе
создать коробку box "name of box" #фоновый цвет обтекание участник 1 участник 2 end box Модуль вертикального деления

Диаграмма последовательности интерфейса входа в систему

@startuml

autonumber "<b>[00]"

title 登录接口时序图

actor "TA用户" as User #white
participant "TAAPP" as TAAPP #gold
box "LX交付" #gray
participant "LX交付SDK" as LXSDK #orange
participant "LX交付后端\ntiananuser" as LXServer #red
participant "LXsaas后端" as LXSaasServer #gray
end box
participant "TA后端" as TAServer #green

activate User

User -> TAAPP ++:  登录TAAPP\n打开健康TAP页面
==sdk对接==
TAAPP -> LXSDK ++:  userId\n或者加密信息

==后端对接==

LXSDK -> LXServer ++: 登录转换为LX登录态接口
==TA后端对接==
LXServer <-> TAServer ++: 用户信息校验\n
==对接saas==
LXServer <-> LXSaasServer ++: 注册并登录\n到LXSaas
==构造LX专属登录态==
LXServer -> LXServer ++: 登记用户信息\n保存登录令牌到redis

LXServer -> LXSDK ++: 构造LX专属登录态(token)
==后端对接完成==

LXSDK --> TAAPP ++: 正常使用LX交互功能

TAAPP --> User ++: 看到LX交互功能


@enduml

file

Изменить баллы пользователя

@startuml

autonumber "<b>[#]"

actor TAapp用户 as taUser

control 网关 as nginx
box 接口程序 #green
boundary Web服务器 as tomcat
end box
collections Redis as redis
database Mysql as mysql

taUser -> nginx  ++ : 看文章,增加积分

nginx ->> tomcat ++ : 负载均衡策略遭到一台tomcat

==接口处理流程开始==
tomcat --> tomcat ++ : 参数判断
alt 参数判断不合法
    tomcat -[#red]> taUser ++ : 参数传错误
else 参数合法

tomcat -> mysql ++ : 插入积分改变的明细记录
return 表记录id

tomcat ->redis ++ : 获取缓存中用户对应的记录id

alt 缓存中userId对应的积分id存在
    tomcat -> mysql ++ : 更新用户的总积分
else 缓存中userId对应的积分id不存在
    tomcat -> mysql ++ : 查询得到用户对应的id
    alt 用户的总积分记录在数据库中存在
        tomcat -> mysql ++ :更新用户的总积分
    else userId对应的积分记录id不存在
        tomcat -> mysql ++ :插入用户的总积分记录
    end
    return 用户积分记录对应的记录id
    tomcat -> redis ++: 用户积分记录对应的记录id保存到redis
    return 无返回值
end
tomcat ->redis: 清除掉总积分缓存,分页缓存,总条数缓存

return  用户增加积分明细记录id

end

tomcat -[#green]> taUser ++ : 改变积分成功
@enduml

file

Запрос пользовательских баллов

@startuml

title 查询用户积分明细接口时序图

autonumber

actor TA用户 as taUser
boundary Web服务 as tomcat
collections Redis as redis
database Mysql as mysql


taUser -> tomcat ++ : 请求查询总积分和明细
|||

tomcat -> tomcat ++: 参数校验

opt 参数校验不通过
tomcat -> taUser --:   参数校验不通过
end
... ...
tomcat <-> redis ++: 明细总数

opt 明细总数不存在
 tomcat <-> mysql ++: 查询明细总数
 tomcat <-> redis ++: 保存明细总数
end 


opt 明细总条数为 0 
    tomcat -> taUser ++: 查询成功,记录为空
end

tomcat <-> redis ++: 查询明细记录
opt 明细记录为空
tomcat <-> mysql ++: 查询明细记录
tomcat <-> redis ++: 保存明细记录
end

tomcat -> tomcat ++: 明细记录组装到返回对象中

tomcat -> redis ++: 查询用户的总积分
opt 用户的总积分
tomcat <-> mysql ++: 查询用户的总积分
tomcat <-> redis ++: 保存用户的总积分

tomcat -> tomcat ++: 用户的总积分组装到返回对象中


tomcat -> taUser ++: 返回积分明细

end


@enduml

file

резюме

1. Plantuml может рисовать диаграммы во многих документах по разработке программного обеспечения, включая диаграммы архитектуры, диаграммы ER и диаграммы UML;

2. Диаграмма вариантов использования макроскопически описывает функцию системы;

3. Диаграмма последовательности подробно описывает внутренний поток обработки одного интерфейса;

4. Примите старый проект, согласно диаграмме UML, чтобы вытянуть один за другим, старая система может сохраниться как можно скорее.

Оригинальность непростая, просьба указывать источник при перепечатке.