Диаграмма состояний и статусная модель
Вопрос
Зачем аналитику диаграмма состояний? Что на ней обязательно показать?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Жизненный цикл объекта: все состояния, начальное и конечные
Переходы: событие, условие, действие
Запрещённые переходы видны как отсутствие стрелок
Кто инициирует переход: пользователь, система, внешняя система
Из диаграммы получаются проверки в коде и тест-кейсы
Что могут спросить следом
- Как быть, если статусов больше 15?
- Как статусная модель связана с API?
Разбор
Диаграмма состояний описывает жизнь объекта: заявки, заказа, договора. На ней показываю начальное состояние, все промежуточные и конечные, и переходы в формате событие, условие, действие. Например, «отмена [до сборки] / вернуть деньги». Важно, чего нет на схеме: если из «Доставлен» нет стрелки в «Новый», такой переход запрещён, и это требование. Подписываю, кто инициирует переход. Разработчики по схеме делают проверку допустимых переходов, API возвращает 409 на недопустимый, тестировщики покрывают каждую стрелку и несколько запрещённых. Если статусов много, выделяю подсостояния или отдельные модели для разных аспектов.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.