Как системный аналитик влияет на проектирование архитектуры

17 февраля 2025

Автор: Екатерина Ананьева

Архитектура

О профессии

Введение

Проектирование архитектуры систем вместе с разработчиками и архитекторами — одна из больших задач системного аналитика.

В этом процессе аналитик становится мостиком между бизнес-процессами и техническими решениями. Понимать надо глубоко и то, и другое.

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

Аналитик выполняет множество исследовательских задач, предоставляет результаты команде и совместно с архитекторами выбирает обоснованные технические решения для проекта. Например:

  • Нужно ли выделять отдельный микросервис под определённую задачу?
  • Какой API выбрать для создания интеграционного шлюза?
  • Какой брокер сообщений взять для обработки событий и почему здесь вообще нужен брокер?

В этой статье собран перечень основных задач системного аналитика, связанных с проектированием архитектуры:


1. Исследования и анализ

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

Основные задачи:

  • Сбор и анализ требований от всех заинтересованных сторон: бизнес, заказчики, разработчики, DevOps (нагрузка на сервера), безопасность.
  • Выделение независимых бизнес-контекстов – бизнес-процессов и функциональных блоков, которые могут работать независимо друг от друга. Это будет основой решения по выделению сервисов и микросервисов в системе.
  • Изучение существующих решений и технологий, если система модернизируется. Например, если переходят с монолита на микросервисы, важно понять, какие модули наиболее загружены. и почему потребность перехода на микросервисы в принципе возникла.
  • Определение пользователей и их сценариев – какие роли есть в системе, какие данные им нужны и какие процессы они выполняют.
  • Выявление точек интеграции с внешними системами – нужно ли подключение внешним системам, и если да, то как именно, по каким протоколам, какими данными надо обмениваться и из форматы.

2. Выбор подхода к проектированию архитектуры

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

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

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

3. Создание схемы архитектуры

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

Выполнять эту задачу может опытный системный аналитик самостоятельно, но чаще всего, до начала работы над ней, все принципы проектирования обсуждаются с разработчиками и архитекторами:

  • Сервисы и микросервисов, которые будут в системе.
  • Способы обмена данными внутри системы: API, брокеры и другие технологии.
  • Базы данных и файловые хранилища.
  • Технические особенности в интеграциях систем.
  • Языки программирования и технологии.
  • Другие особенности.

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

На этом этапе системный аналитик модет создавать следующие документы:

  • Схему архитектуры, охватывающую основные компоненты и их взаимодействия.
    Для моделирования архитектуры можно использовать простые фигуры, как, например, в этой статье, либо нотацию C4. Другие варианты можно посмотреть в статье "ТОП-5 нотаций моделирования архитектуры".
  • Статьи документации под каждый компонент системы (приложение, сервис, микросервис, монолит), в которых определены границы и ответственность по их функциональности.
  • Общее описание распределения данных по разным БД, обоснование по выбранным СУБД.
    На этом этапе также могут создаваться логические и физические модели БД (ER-диаграммы).
  • Фиксация обоснования принятых рещений по взаимодействию между компонентами системы с учетом функциональных и нефункциональных требований - выбор API, определение мест, где нужны Kafka, RabbitMQ или другие решения.
  • Проведение сессий с заинтересованными сторонами для получения обратной связи и внесения корректировок в схему архитектуры и в документацию по ней.

Аналитику рекомендуется как можно чаще проводить демонстрацию схемы архитектуры команде в процессе создания, получать обратную связь и вносить уточнения. 

Пример схемы архитектуры в нотации C4:

Материалы для изучения нотации моделирования архитектуры C4:

4. Оценка влияния нефункциональных требований

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

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

Основные задачи:

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

Больше об этой части можно узнать в подкасте "Нефункциональные требования".

Заключение

Перечисленные задачи покрывают ключевые этапы проектирования архитектуры, в которых может участвовать системный аналитик.

Системный аналитик – ключевой игрок в проектировании архитектуры. Он помогает связывать бизнес-требования и технические решения, помогает исследовать и сравнивать новые технологии, так как хорошо справляется с Google (+ ChatGPT), помогает выбирать оптимальные архитектурные подходы и фиксировать их в документации.

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

Больше полезных материалов

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

*Instagram и LinkedIn — запрещенные на территории РФ организации

Контакты

+7 (499) 686-15-46

Лицензия №Л035-01255-50/01366872 от 28.08.2024

*Instagram — запрещенная на территории РФ организация

Практический опыт здесь, 2021-2025

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