Диаграммы схем состояний
Диаграмма схем состояний — одна из пяти диаграмм UML, моделирующих динамику систем. Диаграмма схем состояний отображает конечный автомат, выделяя поток управления, следующий от состояния к состоянию. Конечный автомат — поведение, которое определяет последовательность состояний в ходе существования объекта. Эта последовательность рассматривается как ответ на события и включает реакции на эти события.
Диаграмма схем состояний показывает:
1) набор состояний системы;
2) события, которые вызывают переход из одного состояния в другое;
3) действия, которые происходят в результате изменения состояния.
В языке UML состоянием называют период в жизни объекта, на протяжении которого он удовлетворяет какому-то условию, выполняет определенную деятельность или ожидает некоторого события. Как показано на рис. 12.1, состояние изображается как закругленный прямоугольник, обычно включающий его имя и подсостоя-ния (если они есть).
Рис. 12.1. Обозначение состояния
Переходы между состояниями отображаются помеченными стрелками (рис. 12.2).
Рис. 12.2. Переходы между состояниями
На рис. 12.2 обозначено: Событие — происшествие, вызывающее изменение состояния, Действие — набор операций, запускаемых событием.
Иначе говоря, события вызывают переходы, а действия являются реакциями на переходы.
Примеры событий:
баланс < 0
помехи уменьшить(Давление) after (5 seconds) when (time = 16:30) | Изменение в состоянии
Сигнал (объект с именем) Вызов действия Истечение периода времени Наступление абсолютного момента времени |
Примеры действий:
Кассир. прекратитьВыплаты( )
flt:= new(Фильтp); Ш.убратьПомехи( ) send Ник. привет | Вызов одной операции
Вызов двух операций Посылка сигнала в объект Ник |
ПРИМЕЧАНИЕ
Для отображения посылки сигнала используют специальное обозначение — перед именем сигнала указывают служебное слово send.
Для отображения перехода в начальное состояние принято обозначение, показанное на рис. 12.3.
Рис. 12.3. Переход в начальное состояние
Соответственно, обозначение перехода в конечное состояние имеет вид, представленный на рис. 12.4.
Рис. 12.4. Переход в конечное состояние
В качестве примера на рис. 12.5 показана диаграмма схем состояний для системы охранной сигнализации.
Рис. 12.5. Диаграмма схем состояний системы охранной сигнализации
Из рисунка видно, что система начинает свою жизнь в состоянии Инициализация, затем переходит в состояние Ожидание. В этом состоянии через каждые 10 секунд (по событию after (10 sec.)) выполняется самопроверка системы (операция Самопроверка ()). При наступлении события Тревога (Датчик) реализуются действия, связанные с блокировкой периметра охраняемого объекта, — исполняется операция БлокироватьПериметр() и осуществляется переход в состояние Активна. В активном состоянии через каждые 5 секунд по событию after (5 sec.) запускается операция ПриемКоманды(). Если команда получена (наступило событие Сброс), система возвращается в состояние Ожидание. В процессе возврата разблокируется периметр охраняемого объекта (операция РазблокироватьПериметр()).