Перейти к содержимому

Визуализация моделей

Модель может быть просто текстовой, в таком случае мы просто записываем требования и описываем систему словами. Это становится неудобно уже для проектов среднего масштаба, поскольку нет наглядности, и рука невольно тянется рисовать (неважно, где, на бумаге, draw.io или в Miro). Даже ту же конуру в идеале хочется нарисовать и по рисунку (а в идеале чертежу) строить. Отсюда возникает проблема, что в случае рисунков нужно отдельно объяснять, какой элемент что значит. Если каждый рисует по-своему, то велик риск, что в итоге все забьют на идею и оставят всё на уровне договорённостей. В качестве альтернативы можно заранее договориться о каком-то одном варианте изображать те или иные элементы. И вот как раз в этот момент появляются всякие разные нотации.

Если брать что-то из того же строительства, то в разных странах разные стандарты, но в целом они сильно пересекаются. При желании на досуге можно почитать про единую систему конструкторской документации (ЕСКД).

Нотаций в программировании, на самом деле, достаточно много:

  • Блок-схемы — их вы наверняка знаете со школьной скамьи, но не все знают, что нотация блок-схем шире, чем она обычно даётся, и при необходимости с её помощью также можно описывать процессы.
  • IDEF (начало 80-х годов) — набор различных нотаций на все случаи жизни, объединённых под одним названием. Достаточно разрозненный и никак не развивается (последнее обновление в 1995 году).
  • eEPC или ARIS (c 90-х годов) — блок-схемы для мира бизнеса, описывающие процесс с точки зрения событий (произошло событие — мы отреагировали и сгенерировали новое событие).
  • UML — нотация общего назначения для моделирования различных аспектов информационных систем и программного обеспечения. Последнее обновление в 2017 году, в ближайшие несколько лет ожидается новая мажорная версия.
  • BPMN — нотация для моделирования бизнес-процессов. Широко используется, в том числе для реального управления процессами на основе диаграмм, и относительно развивается (последнее обновление в 2014 году).
  • SysML — диалект UML, адаптированный под задачи системной инженерии (два новых типа диаграмм, изменения в некоторых других). Активно развивается, последнее обновление в 2025 году.
  • C4 (официально с 2018 года) — свежая альтернатива UML с небольшим количеством сущностей, призванная стать удобной заменой “прямоугольникам со стрелками”. При этом намеренно оставляет вопрос детализированного проектирования в стороне.

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