10 месяцев назад История
README.md

Модуль перевода документов 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.

Мысли

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

Учебная среда ОО-моделирования

Конвейеры
0 успешных
0 с ошибкой