Не UML-диаграммы на PlantUML. Обзор с примерами

от автора

Привет Хабр! Меня зовут Татьяна Ошуркова, я разработчик, аналитик и автор телеграм-канала IT Talks. Назначением инструмента PlantUML принято считать построение UML-диаграмм. Но на самом деле у него намного больше возможностей и типов диаграмм, которые можно создать.

В этой статья я расскажу о нескольких диаграммах, которые не относятся к UML, но могут быть построены с помощью PlantUML.

Диаграмма сущностей-связей (ER Diagram)

ER-диаграммы используются для проектирования и визуализации структур баз данных. В PlantUML это можно сделать с помощью встроенных возможностей.

Мне кажется очень быстрым и удобным построением ER-диаграмм таким образом, так как отрисовка графики вручную занимает немало времени. На PlantUML достаточно скопировать наименование полей и их типов из базы данных, дополнив их простым оформлением.

@startuml  entity "User" {   * user_id : NUMBER   --   username : VARCHAR   email : VARCHAR   password : VARCHAR }  entity "Order" {   * order_id : NUMBER   --   user_id : NUMBER   order_date : DATE   total : DECIMAL }  entity "Product" {   * product_id : NUMBER   --   name : VARCHAR   price : DECIMAL }  User ||--o{ Order Order ||--o{ Product    @enduml

Диаграмма регулярных выражений (RegExp)

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

@startregexp  ^([A-Za-z0-9]+)\.([A-Za-z]{2,4})$  @endregexp

Этот пример иллюстрирует регулярное выражение для валидации доменных имен, например, «example.com» или «site.org». Разберем его по частям:

  • ^ — начало строки.

  • ([A-Za-z0-9]+) — одна или более букв (верхний и нижний регистр) или цифр, которые составляют первую часть домена.

  • \. — точка (специальный символ, поэтому требуется экранирование).

  • ([A-Za-z]{2,4}) — от 2 до 4 букв (например, «com», «org», «net»).

  • $ — конец строки.

Очень удобная функция PlantUML, так как позволяет быстро построить схематичное отображение значений регулярного выражения.

PlantUML использует упрощенную версию регулярных выражений, и не все возможности стандартных регулярных выражений поддерживаются. Например, такие конструкции как обратные ссылки (например, \1 для обращения к первым группам) или жадные и не жадные квантификаторы (например, .*?) могут не поддерживаться.

Ментальные карты (Mindmap)

Mindmap — это диаграмма для визуализации идей и процессов, которая позволяет структурировать информацию, упрощая планирование, принятие решений и мозговые штурмы.

@startmindmap  * План разработки ** Анализ *** Сбор требований *** Обсуждение с заказчиком ** Разработка *** Дизайн интерфейса *** Написание кода ** Тестирование *** Модульное тестирование *** Интеграционное тестирование ** Выпуск *** Подготовка релиза *** Документация  @endmindmap

Как и для многих диаграмм на PlantUML здесь хочется отметить простую реализацию и отсутствие затратов времени на создание графика вручную. Несмотря на то, что сейчас существует множество инструментов для работы с mindmap, PlantUML здесь не уступает в удобстве работы.

JSON-диаграмма

JSON (JavaScript Object Notation) — это формат данных, который часто используется для обмена информацией между сервером и клиентом, а также для хранения данных в приложениях.

Преимущества работы PlantUML с json заключается в том, что можно поместить любой, даже очень сложный по структуре json, между ключевыми словами startjson и endjson и получить наглядную структурную схему.

@startjson  {   "user": {     "id": 1234,     "name": "John Doe",     "email": "john.doe@example.com",     "roles": ["admin", "user"],     "preferences": {       "theme": "dark",       "notifications": true,       "language": "en"     }   },   "settings": {     "privacy": "high",     "security": "enabled"   },   "subscriptions": [     {       "service": "Premium Plan",       "start_date": "2024-01-01",       "status": "active"     },     {       "service": "Basic Plan",       "start_date": "2023-06-15",       "status": "inactive"     }   ] }  @endjson

YAML-диаграмма

YAML (YAML Ain’t Markup Language) — это формат данных, используемый для хранения и передачи данных. Он часто применяется в конфигурационных файлах.

Аналогично JSON-диаграмме необходимо поместить содержимое yaml между ключевыми словами startyaml и endyaml для создания структурной схемы файла.

@startyaml  project:   name: "My project"   version: "1.0"   description: "A description of the project"   dependencies:     - name: "Service A"       version: "2.3"       config:         timeout: 300         retries: 5     - name: "Service B"       version: "1.0"       config:         timeout: 100         retries: 3   settings:     logging: true     debug: false     apiEndpoint: "https://api.myproject.com/v1"        @endyaml

Подведем итоги

В этой статье мы рассмотрели разнообразные способы визуализации данных с использованием PlantUML, включая диаграммы типов Mindmap, JSON, YAML, ER (Entity-Relationship) и регулярных выражений (RegExp). Каждый из этих форматов имеет свои особенности и применения. С помощью диаграмм в PlantUML можно легко представить сложные структуры данных и взаимосвязи.

  • ER-диаграммы дают четкое представление о сущностях и их отношениях, что критически важно для проектирования баз данных и систем.

  • RegExp-диаграммы визуализируют сложные регулярные выражения, делая их более понятными и удобными для анализа и обучения.

  • Mindmap позволяет наглядно представлять идеи и их взаимосвязи, что полезно для планирования, мозговых штурмов и объяснения концепций.

  • JSON и YAML используются для структурированных данных, и их визуализация помогает лучше понять иерархии и зависимости между элементами конфигураций или данных.

В завершение делюсь расширением для Visual Studio Code, которое использую для генерации диаграмм.

2 декабря я проведу бесплатный вебинар: «Построение диаграмм. Цели и задачи визуализации данных», где подробно разберу, как эффективно использовать различные виды диаграмм для описания требований. Запись на вебинар доступна по ссылке.

Удачи в работе с PlantUML!


ссылка на оригинал статьи https://habr.com/ru/articles/861900/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *