задний план
Текущие разработчики программного обеспечения, неизбежным необходимо выводить некоторые документы по проектированию программного обеспечения, программное обеспечение в качестве инженера для выпускников, являются наиболее часто используемыми инструментами 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
Сгенерированный график:
Пример использования внешней системы
@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
Временная диаграмма (диаграмма последовательности)
Показывает сотрудничество между объектами
грамматика
объект | грамматика | иллюстрировать |
---|---|---|
стрелки и линии | -> Пунктирная стрелка | Идентифицирует обмен сообщениями между участниками |
участник | актор роль граница с границей объект управления сущность база данных коллекции участник коллекция участник | Определить участников |
Переименовать | участник подробное имя участника в виде аббревиатуры | Переименовать участника |
Порядок определения | участник подробное имя участника порядковый номер порядкового номера | Чем меньше серийный номер, тем выше |
Участник содержит специальные символы | "Участник" | в двойных кавычках |
стиль стрелки | Отсутствует сообщение ->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
Изменить баллы пользователя
@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
Запрос пользовательских баллов
@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
резюме
1. Plantuml может рисовать диаграммы во многих документах по разработке программного обеспечения, включая диаграммы архитектуры, диаграммы ER и диаграммы UML;
2. Диаграмма вариантов использования макроскопически описывает функцию системы;
3. Диаграмма последовательности подробно описывает внутренний поток обработки одного интерфейса;
4. Примите старый проект, согласно диаграмме UML, чтобы вытянуть один за другим, старая система может сохраниться как можно скорее.
Оригинальность непростая, просьба указывать источник при перепечатке.