TechMeetup 7 System analysis МТС Финтех

Начни с начала

Материалы после выступления на TechMeetup 7 System analysis МТС Финтех.

Чеклист для проверки архитектурных диаграмм

Несколько правил для проверки своей архитектурной диаграммы.

Общие вопросы которые стоит себе задать

  1. У диаграммы есть заголовок?
  2. Понятно, к какому типу относится диаграмма, что она показывает?
  3. Понятен ли уровень и скоуп диаграммы?
  4. У диаграммы есть легенда / расшифровка обозначений?

Как проверить элементы диаграммы

  1. У каждого элемента есть название?
  2. Понятен ли тип каждого элемент (уровень абстракции)?
  3. Понятно, что делает каждый элемент?
  4. Понятна ли технология, связанная с элементом? (если применимо на данном уровне абстракции)
  5. Понятен ли смысл всех аббревиатур и сокращений?
  6. Понятен ли смысл всех цветов элементов?
  7. Понятен ли смысл всех форм элементов?
  8. Понятен ли смысл всех иконок?
  9. Понятен ли смысл линий границ элементов? (сплошная, пунктирная…)
  10. Понятен ли смысл размеров элементов?
  11. Понятен ли смысл группировки элементов?

Связи и отношения

  1. У каждой лини есть подпись, объясняющая смысл связи?
  2. Для каждой связи понятна технология, при помощи которой эта связь реализуется? (например, протокол; если применимо на данном уровне абстракции)
  3. Понятен ли смысл всех аббревиатур и сокращений на диаграмме?
  4. Понятен ли смысл всех цветов элементов?
  5. Понятен ли смысл всех типов стрелок?
  6. Понятен ли смысл всех типов линий? (сплошная, пунктирная…)

Инструменты

  • diagrams.net (ex. draw.io) Набор фигур с4. Тип: Онлайн
  • drawio-desktop Набор фигур с4. Тип: Онлайн
  • PlantUML позволяет генерировать UML-диаграммы из текста. Тип: Онлайн/Офлайн

Описание элементов

Зоны ответственности

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

Элементы

Человек

Используется для представления одного из пользователей вашей программной системы (например, ролей, персонажей и т.д.).c4Name: указывается роль участникаc4Description: указывается описание роль участника  

Программная система

Используется для описания программной системы. Программная система — это высший уровень абстракции и описывает то, что приносит пользу ее пользователям, независимо от того, являются они людьми или нет. Это включает в себя программную систему, которую вы моделируете, и другие программные системы, от которых зависит ваша программная система (или наоборот).c4Name: указывается название системыc4Description: указывается описание программной системы

Контейнер

Используется для описания контейнера. Контейнер — это, по сути, контекст или граница, внутри которой выполняется некоторый код или хранятся некоторые данные.c4Name: указывается название контейнераc4Description: указывается описание контейнераc4Technology: указывается список технологий, используемых внутри контейнера 

Хранилище данных

Используется для представления хранилища данных на схемеc4Type: указывается название хранилища данныхc4Description: указывается описание хранилища данныхc4Technology: указывается список технологий, используемых внутри хранилища данных

Шина данных \ брокер

Используется для описания сервисной шины – связующего программного обеспечения, обеспечивающего централизованный и унифицированный событийно-ориентированный обмен сообщениями между различными информационными системами на принципах сервис-ориентированной архитектуры.c4Type: указывается название сервисной шиныc4Description: указывается описание сервисной шиныc4Technology: указывается список технологий, используемых внутри сервисной шины

Компонент

Используется для описание компонента, представляющего собой группу связанных функций, инкапсулированных за четко определенным интерфейсом.c4Name: указывается название компонентаc4Description: указывается описание компонентаc4Technology: указывается список технологий, используемых внутри компонента

WEB — интерфейс

Используется для изображения web — интерфейсаc4Type: указывается название web — интерфейсаc4Description: указывается описание web — интерфейсаc4Technology: указывается список технологий, используемых внутри web — интерфейса

Микросервис

Используется для изображения микросервисаc4Type: указывается название микросервисаc4Description: указывается описание микросервисаc4Technology: указывается список технологий, используемых внутри микросервиса

СвязьW

используется для указания взаимосвязей между компонентами схемыc4Description: указывается описание связи

Связь с описание технологии

Используется для указания взаимосвязей между компонентами схемы с указание конкретных технологийc4Description: указывается описание связиc4Technology: указывается список технологий, используемых связью

Наименования связей

Размер элементов

При моделировании системы необходимо сохранять единый размер для всех элементов

Mock-объект

Для указание mock-объекта на схеме используется существующий элемент модели, с прозрачным фоном и заштрихованным контуром

Почему разработчики не хотят читать требования и не понимают постановку задачи?Наименования связей

Чаще всего это случается из-за отсутствия этапа проектирования после разработки требований и до их реализации. Устранить этот разрыв можно с помощью архитектурного проектирования ИС в нотации C4. Она намного проще UML, но охватывает гораздо больше вопросов проектирования. 

Эта простая, но очень эффективная нотация позволяет наглядно показать, кто и зачем будет пользоваться системой, как она работает в разных контекстах и из чего она состоит. Вы сможете представить не только саму систему, но и её важные инфраструктурные части для обеспечения высокой производительности, масштабирования и надежности, с чем UML справиться не может!

Умение строить диаграммы C4 полезно аналитикам, занимающихся проектированием системы и тем, кто хочет научиться это делать с учетом лучших архитектурных паттернов и инфраструктурных практик. 

Полезные материалы


Опубликовано

в

от

Комментарии

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