Материалы после выступления на TechMeetup 7 System analysis МТС Финтех.
Чеклист для проверки архитектурных диаграмм
Несколько правил для проверки своей архитектурной диаграммы.
Общие вопросы которые стоит себе задать
- У диаграммы есть заголовок?
- Понятно, к какому типу относится диаграмма, что она показывает?
- Понятен ли уровень и скоуп диаграммы?
- У диаграммы есть легенда / расшифровка обозначений?
Как проверить элементы диаграммы
- У каждого элемента есть название?
- Понятен ли тип каждого элемент (уровень абстракции)?
- Понятно, что делает каждый элемент?
- Понятна ли технология, связанная с элементом? (если применимо на данном уровне абстракции)
- Понятен ли смысл всех аббревиатур и сокращений?
- Понятен ли смысл всех цветов элементов?
- Понятен ли смысл всех форм элементов?
- Понятен ли смысл всех иконок?
- Понятен ли смысл линий границ элементов? (сплошная, пунктирная…)
- Понятен ли смысл размеров элементов?
- Понятен ли смысл группировки элементов?
Связи и отношения
- У каждой лини есть подпись, объясняющая смысл связи?
- Для каждой связи понятна технология, при помощи которой эта связь реализуется? (например, протокол; если применимо на данном уровне абстракции)
- Понятен ли смысл всех аббревиатур и сокращений на диаграмме?
- Понятен ли смысл всех цветов элементов?
- Понятен ли смысл всех типов стрелок?
- Понятен ли смысл всех типов линий? (сплошная, пунктирная…)
Инструменты
- 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 полезно аналитикам, занимающихся проектированием системы и тем, кто хочет научиться это делать с учетом лучших архитектурных паттернов и инфраструктурных практик.
Полезные материалы
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.