Skip to content

Leartiz/plantuml_to_structs_converter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Модуль перевода документов PlantUML в структуры 🦜

Доступный PlantUML для диаграмм

Любая

  • директивы @startuml/@enduml;
  • смена направления:
    • left to right direction
    • top to bottom direction
  • однострочные skinparam:
    • skinparam <key> <value>
  • однострочные заметки с ключевым словом note:
    • note left|right|top|bottom of <node_id> : <string>
    • note left|right|top|bottom : <string>
  • многострочные заметки с ключевым словом note:
    • note as <note_id>
      ...
      end note
    • note left|right|top|bottom of <node_id>
      ...
      end note
  • однострочные/многострочные комментарии:
    • ' ...
    • \' ... '\
  • пустые строки.

Диаграмма прецедентов

  • определение узлов usecase:
    • usecase (<name>) as <id>
    • usecase "<name>" as <id>
  • определение узлов actor:
    • actor :<name>: as <id>
    • actor "<name>" as <id>
  • ассоциация, включение, расширения, наследование:
    • <node_id> --> <node_id>
      <node_id> <-- <node_id>
    • <node_id> ..> <node_id> : <<include>>
      <node_id> <.. <node_id> : <<include>>
    • <node_id> ..> <node_id> : <<extend>>
      <node_id> <.. <node_id> : <<extend>>
    • <node_id> --|> <node_id>
      <node_id> <|-- <node_id>
    • <node_id> -[u|d|l|r]-> <node_id>
      <node_id> <-[u|d|l|r]- <node_id>
      <node_id> -[up|down|left|right]-> <id>
      <node_id> <-[up|down|left|right]- <id>
  • расширение и к ней точка и условие:
    • <пример с использованием заметки>
  • группировки package/rectangle:
    • rectangle <group_id> {
      ...
      }
    • package <group_id> {
      ...
      }
  • по умолчанию узлы без определения actor.

В нотации РБНФ тут.
Примеры тут.


Диаграмма робастности

  • определение узлов:
    • actor <node_nmid>
      boundary <node_nmid>
      control <node_nmid>
      entity <node_nmid>
    • actor "<node_name>" as <node_id>
      boundary "<node_name>" as <node_id>
      control "<node_name>" as <node_id>
      entity "<node_name>" as <node_id>
  • отношения между элементами:
    • <node_id> -[-]... <node_id>
      <node_id> <--> <node_id>
      <node_id> --> <node_id>
      <node_id> <-- <node_id>
    • <node_id> -[-]... <node_id> : <string>
      <node_id> <--> <node_id> : <string>
      <node_id> --> <node_id> : <string>
      <node_id> <-- <node_id> : <string>
    • <node_id> -[u|d|l|r]- <node_id>
      <node_id> -[up|down|left|right]- <node_id>
  • альтернативные последовательности цветом #red:
    • <type> <node_nmid> #red
      <type> "<node_name>" as <node_id> #red
  • обязательное определение узлов.

В нотации РБНФ тут.
Примеры тут.

Если на диаграмме используются двусторонние стрелки вида -- или <-->, то в таком случае, в памяти будут созданы два объекта дуги.


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

  • определение узлов:
    • actor <node_nmid>
      boundary <node_nmid>
      control <node_nmid>
      entity <node_nmid>
    • actor "<node_name>" as <node_id>
      boundary "<node_name>" as <node_id>
      control "<node_name>" as <node_id>
      entity "<node_name>" as <node_id>
  • отношения между элементами:
    • <node_id> -[-]... <node_id>
      <node_id> --> <node_id>
      <node_id> <-- <node_id>
    • <node_id> -[-]... <node_id> : <string>
      <node_id> --> <node_id> : <string>
      <node_id> --> <node_id> : <string>
  • альтернативные последовательности цветом #red:
    • <type> <nmid> #red
      <type> "<name>" as <id> #red
  • группировки alt, opt, loop:
    • <alt|opt|loop> [condition]
      ...
      else [condition]
      ...
      end
    • ref over <id>...
      ...
      end ref
  • обязательное определение узлов.

В нотации РБНФ тут.
Примеры тут.


Диаграмма классов

  • узлы с типами class, interface и enum:
    • class <node_nmid> { ... }
    • interface <node_nmid> { ... }
    • enum <node_nmid> { ... }
  • зависимость, ассоциация, агрегация, композиция, реализация, наследование:
    • ..>, -->, --o, --*, ..|>, --|>
    • <.., <--, o--, *--, <|.., <|--
    • -[u|d|l|r]-
      .[u|d|l|r].
      -[up|down|left|right]-
      .[up|down|left|right].
    • <node_id> <arrow> <node_id>
  • функции и данные в узле с типом class:
    • [+|-|#]<member_name> : <member_type>
    • [+|-|#]<member_name>([<member_type>,]...) : <member_type>
  • методы в узле с типом interface:
    • [+]<member_name>([<member_type>,]...) : <member_type>
  • значения в узле с типом enum:
    • <enum_value>
  • по умолчанию узлы без определения class.

В нотации РБНФ тут.
Примеры тут.


Диаграмма потока экранов в нотации состояний (alpha)

  • допустимы только односторонние стрелки;
  • ...

Сериализация

...

Зависимости

...

SAST инструменты

PVS-Studio – static analyzer for C, C++, C#, and Java code.
Cppcheck – static analysis tool for C/C++ code.

Другие инструменты

Valgrind – is a programming tool for memory debugging, memory leak detection, and profiling.

Мысли

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

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages