Canvarus. Создайте стилизованную ИТ-архитектуру с zoom-эффектом

Сервис для визуализации архитектуры программных продуктов в стиле стоковых изображений с контролируемой детализацией и другими функциями моделирования

Canvarus. Создайте стилизованную ИТ-архитектуру с zoom-эффектом

Презентацию своей идеи для удобства мы разбили на разделы:

С чего всё началось

В 2019 году мы разрабатывали очередную информационную систему. И когда всё было готово к внедрению, как и положено, нам предстояло провести обучение сотрудников заказчика. Но сложность была в том, что в этот раз надо было не просто обучить работе в новом программном обеспечении, а рассказать об изменениях и новых требованиях в предметной области. Изменений было не просто много, а очень много. Правила работы кардинально изменились. Доходило до того, что сотрудники заказчика из-за непонимания нововведений увольнялись целыми отделами. Было отчаяние.

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

И действительно. Ты не переключаешься между картами и не теряешь связей, раскрыв новую карту. Всё в одном месте. Выбрал крупный объект, приблизил его, увеличив детализацию и при необходимости снова отдалился. Как потом оказалось – "мы изобрели C4 model". Об этом можно подробнее почитать в нашей статье.

Если коротко, то это открытие помогло нам переходить от крупных блоков предметной области к постепенной детализации контекста, а затем – к реализации в программном обеспечении. Этот подход потом неоднократно нас выручал.

Но одна проблема оставалась не решённой - это отсутствие интерактивности. Чтобы в полной мере оценить удобство нового подхода, нужно было создать „навигатор“.

Взгляните на нотацию C4 в любом графическом редакторе, например, в Miro. Для одних и тех же блоков есть стандартный вариант и развернутый. И чтобы визуализировать архитектуру надо использовать несколько представлений модели: в свернутом (стандартном) состоянии, т.е. где детализация избыточна, и развёрнутом - там, где она требуется для отдельных модулей или сервисов. А затем перемещаться по доске для поиска нужной детализации.

Пример архитектуры сервиса банковской системы в виде трёх диаграмм в Miro

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

Пример того же сервиса в Canvarus

Надоели однообразные диаграммы

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

При этом все современные редакторы предлагают однотипные варианты оформления нотаций.

Понятно, что однотипность нужна для того, чтобы специалисты понимали друг друга, поэтому это должен быть стандартизированный набор элементов. Даже стандартное представление можно стилизовать. Спросите об этом дизайнеров, оформляющих те же презентации. Они вообще используют стоковые изображения с разных ресурсов, таких как Freepik или iStock, как для вдохновения, так и в качестве шаблонов. Но почему мы — технари начинаем придавать этому значение только когда так сказать „выходим в люди“. Потому что понимаем, что красота тоже важный элемент подачи даже технически сложных идей.

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

Ниже представлены разные варианты оформления того же примера сервиса банковской системы.

Сочетание творчества и технологии

Если вы системный аналитик или архитектор, то вам точно не нужно объяснять, чем отличается инструмент моделирования от графического редактора. Canvarus создан именно для моделирования, а не только рисования диаграмм, благодаря этому уже сейчас вы можете:

  • наполнять нотации атрибутами. Среди возможных типов атрибутов есть "Структура", благодаря которому можно описывать наборы или витрины данных в сервисах, а также контракты в точках взаимодействия (API) и при этом не загромождать графическое представление перечислениями полей
  • применять фильтры по атрибутам, скрывая избыточные объекты или подсвечивая наиболее важные, в рабочей области
  • переиспользовать уже существующие объекты из единого репозитория объектов. При этом если в объект вложены другие объекты, то при извлечении из репозитория все объекты будут извлечены вместе с ним
  • видеть все связи объекта с другими объектами, в том числе на других диаграммах
  • анимировать взаимодействие объектов, например, потоки данных. Последовательность анимации настраивается пошагово
  • генерировать видео презентации. Для создания слайдов можно указать заголовок и описание, выбрать позицию экрана, и комбинировать с анимацией связей
  • создавать собственные нотации, задавая внешний вид, описание, положение иконки при необходимости и атрибуты
  • настраивать интеграции отдельных объектов по API и подключаться к базам данных
Применение фильтров по атрибутам

И конечно самое важное, ради чего всё затевалось:

  • вложенность диаграмм, или zoom-эффект, который не ломает схему, а аккуратно раздвигает объекты и сдвигает их обратно при сворачивании
  • стили диаграмм. Пока их не так много, но их количество будет расти, особенно при наличии обратной связи. Какие есть стили и как они выглядят можно посмотреть в разделе "Нотации" в предварительном просмотре
Анимация связей и генерация презентаций

Планы по развитию

Сервис постоянно развивается и в скором времени вы сможете воспользоваться следующими возможностями:

  • DSL — важная функция, которую мы не могли обойти стороной. В сервисе появится возможность создавать диаграммы при помощи скриптов. Усиленно над этим работаем.

  • импорт и экспорт в таблицу всего репозитория объектов и отдельной диаграммы со всеми атрибутами и связями. При этом не надо будет заботиться о расположении объектов. Сервис сам предложит расставить их
  • интеграция с Google таблицами в продолжение импорта и экспорта репозитория

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

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

11