1. Работа с требованиями, стейкхолдерами и моделирование процессов с использованием PlantUML
Работа с требованиями, стейкхолдерами и моделирование процессов с использованием PlantUML
Добро пожаловать в первую статью курса System Analysis Pro. Мы начинаем с фундамента. Любая архитектура, любой код и любая интеграция бессмысленны, если они решают не ту проблему, которая есть у бизнеса.
Системный аналитик (SA) — это мост между хаосом человеческих желаний и строгой логикой машинного кода. Ваша задача — не просто «записать, что сказал заказчик», а перевести бизнес-потребность в техническое решение.
В этом модуле мы разберем, как выявлять требования, управлять ожиданиями стейкхолдеров и превращать слова в строгие диаграммы с помощью подхода Docs-as-Code и инструмента PlantUML.
1. Стейкхолдеры: Кто все эти люди?
Прежде чем писать требования, нужно понять, для кого мы это делаем. Стейкхолдер (заинтересованное лицо) — это любой человек или группа лиц, кто может повлиять на систему или на кого повлияет система.
Классификация стейкхолдеров
На реальных проектах вы столкнетесь с разными типами участников:
!Визуализация уровней влияния стейкхолдеров на проект от центра к периферии.
Матрица RACI
Чтобы не запутаться, кто за что отвечает, используйте матрицу RACI. Это обязательный инструмент для SA на старте проекта.
* R (Responsible): Исполнитель. Тот, кто делает работу (например, разработчик пишет код, аналитик пишет ТЗ). * A (Accountable): Ответственный. Тот, кто принимает работу и несет ответственность за результат (обычно один человек, например, Product Owner). * C (Consulted): Консультант. Тот, у кого спрашивают совета (SME, архитектор). * I (Informed): Информируемый. Тот, кого ставят в известность о результатах (например, техподдержка).
> Совет с собеседования: Если вас спросят, как вы работаете с противоречивыми требованиями от разных стейкхолдеров, правильный ответ: «Я собираю их вместе, подсвечиваю конфликт и влияние на бизнес-цели, и прошу ЛПР (Лицо, Принимающее Решения — Accountable) выбрать приоритетный вариант».
2. Пирамида требований
Требование — это условие, которому должна соответствовать система. Но требования бывают разного уровня детализации.
Уровни требований
Атрибуты качества требований
Хорошее требование должно быть понятным и проверяемым. Используйте критерии INVEST для User Stories и SMART для целей, но для системного анализа критичны следующие свойства:
* Атомарность: Одно требование — одна мысль. * Недвусмысленность: Нельзя трактовать двояко. * Тестируемость: QA должен понимать, как написать тест-кейс. * Трассируемость: Понятно, откуда требование пришло (от какой бизнес-цели).
3. Моделирование процессов: Визуализация логики
Текст — плохой способ передачи сложной логики. Разработчики не читают «простыни» текста. Они смотрят диаграммы. Мы будем использовать UML (Unified Modeling Language), так как это стандарт индустрии.
Основные диаграммы для SA
4. PlantUML: Практика Docs-as-Code
В современном мире мы отходим от рисования в Visio или draw.io в пользу PlantUML или Mermaid. Почему?
* Версионирование: Диаграмма — это код. Ее можно положить в Git. * Скорость: Правка текста быстрее, чем перетаскивание квадратиков мышкой. * Единообразие: Стиль отрисовки автоматический.
Основы синтаксиса Sequence Diagram в PlantUML
Давайте разберем реальный кейс: Авторизация пользователя.
Синтаксис предельно прост:
* Participant -> Participant : Сообщение — синхронный вызов.
* Participant --> Participant : Ответ — пунктирная стрелка возврата.
* alt / else — блок условий (if/else).
Вот как выглядит код диаграммы для входа в систему:
Разбор элементов диаграммы
participant и database. Использование as позволяет давать короткие алиасы (например, DB).5. Документирование требований (SRS)
Результатом вашей работы является SRS (Software Requirements Specification). В современных компаниях это чаще всего страница в Confluence или файл Markdown в репозитории.
Типовая структура описания фичи:
6. Подготовка к интервью (System Design Section)
На собеседованиях часто просят: «Нарисуйте, как происходит покупка товара».
Ваш алгоритм действий:
Использование PlantUML (или псевдокода диаграмм) на собеседовании показывает вашу техническую грамотность и умение структурировать мысли.
Заключение
Мы разобрали базу: от понимания того, кто такой стейкхолдер, до написания кода диаграммы в PlantUML. Помните: диаграмма — это не картинка для красоты, это чертеж, по которому будут строить систему.
В следующем модуле мы перейдем к техническому «мясу»: Синхронные интеграции, REST API и проектирование контрактов.