Зачем используется диаграмма последовательности UML
Что проверяют
Понимаете ли вы, какую именно задачу она решает, и отличаете ли её от других диаграмм.
Как отвечать
Диаграмма последовательности показывает взаимодействие участников во времени: кто кого вызывает, в каком порядке, что возвращает. Время идёт сверху вниз, участники расположены по горизонтали.
Элементы: линии жизни участников, прямоугольники активации (участник занят обработкой), стрелки сообщений (сплошная закрашенная это синхронный вызов, открытая это асинхронный, пунктирная это возврат), комбинированные фрагменты alt для ветвления, opt для необязательного шага, loop для повторов, par для параллельных ветвей, ref для ссылки на другую диаграмму.
Зачем она аналитику:
- согласовать сценарий до разработки. Особенно на интеграциях: рисунок сразу показывает, кто инициатор, кто хранит состояние и в какой момент данные записываются;
- найти пропущенные ветки. Пока рисуешь основной путь, становится видно, что нигде не описано поведение при отказе внешнего сервиса, при таймауте, при повторной отправке;
- зафиксировать контракт: какие вызовы нужны, с какими данными, синхронно или через очередь;
- объяснить существующую систему: разобрав чужую интеграцию один раз, вы оставляете картинку вместо десяти страниц текста.
Отличия от соседних диаграмм: диаграмма деятельности описывает поток работ и алгоритм, не выделяя участников; диаграмма вариантов использования задаёт границы системы и акторов без деталей обмена; диаграмма компонентов показывает структуру, а не порядок во времени.
Практическое правило: одна диаграмма это один сценарий. Попытка уместить все ветки одного процесса в одну картинку делает её нечитаемой, лучше основной путь плюс отдельные диаграммы на существенные альтернативы.
Где спотыкаются
Рисуют структуру системы вместо последовательности вызовов.
Показывают только счастливый путь.
Не различают синхронный и асинхронный вызов, из-за чего теряется главное архитектурное решение.
Пытаются уместить весь продукт в одну диаграмму.