Перейти к содержимому

Диаграмма состояний

Диаграмму строят для объекта с настоящим жизненным циклом: заказа, заявки, документа, платежа, записи на консультацию. «Открыта форма» и «нажата кнопка» обычно описывают интерфейс, а не состояние предметного объекта.

Простое состояние показывают прямоугольником со скруглёнными углами. Переход — направленной стрелкой. Подпись перехода имеет вид:

trigger [guard] / effect

Триггер (trigger) — событие или вызов операции, защитное условие (guard) определяет допустимость, а действие перехода (effect) выполняется при срабатывании перехода. Например, подтвердить [интервал свободен] / отправитьУведомление.

Состояние с внутренними действиями

У состояния могут быть поведения entry, do и exit: при входе, пока объект находится в состоянии и при выходе. Они относятся к состоянию, а не к переходу.

Начальное псевдосостояние показывает начало региона автомата. Конечное состояние завершает его. Точка выбора (choice) выбирает переход по защитным условиям; условия должны быть связаны с бизнес-правилами и атрибутами объекта.

Начальное псевдосостояние

Если объект действительно проходит независимые ветви жизненного цикла одновременно, применяют развилку (fork) и соединение (join). Для большинства предметных объектов достаточно одного последовательного региона.

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

Состояния выводятся из бизнес-правил, сценариев и концептуальной модели. Экземпляры жизненного цикла можно показать на диаграмме объектов, а события между участниками — на диаграмме последовательности. Составные автоматы и протоколы вынесены в расширенную нотацию.