- •«Диаграммы состояний»
- •1. Что такое диаграмма состояний
- •Набор символов
- •Дополнительные элементы в изображении состояния
- •Дополнительные обозначения для переходов: события и действия
- •Дополнительные обозначения для переходов: условия переходов
- •2. Подчиненные состояния
- •Последовательные подчиненные состояния
- •3. История состояний
- •Параллельные подчиненные состояния
- •4. Сообщения и сигналы
- •5. Зачем нужны диаграммы состояний
- •Дополнение к общей картине
- •6. Резюме
- •Вопросы и ответы
- •Задание
Дополнительные элементы в изображении состояния
UML предоставляет возможность добавления необходимых деталей к изображению состояния. Подобно выделению трех областей в обозначении класса (для имени, атрибутов и операций), изображение состояния тоже можно разделить на три области. Верхняя содержит имя состояния (которое нужно присвоить независимо от того, будут ли присутствовать другие элементы обозначения), в средней области располагаются переменные состояния, а нижняя предназначена для размещения видов деятельности. Эти области показаны на рис. 2.
Рис. 2. Графический символ состояния можно разделить на три области, содержащих имя, переменные состояния и виды деятельности
Переменные состояния, такие как таймеры и счетчики, иногда бывают полезными. Виды деятельности включают события и действия. К стандартным видам деятельности относятся вход (что происходит, когда система входит в состояние), выход (что происходит, когда система выходит из состояния) и выполнение (что происходит, когда система находится в состоянии). По мере необходимости можно добавлять и другие виды деятельности.
Факс представляет пример объекта, состояние которого характеризуется наличием переменных и видов деятельности. При отправке факса (состояние Отправка факса) указывается дата, время отправки (значения переменных состояния дата и время), телефонный номер и имя отправителя (значения переменных состояния номер телефона и отправитель). В таком состоянии факс добавляет к сообщению дату и время отправки, номер телефона и имя отправителя. Другими видами деятельности в этом состоянии являются протяжка бумаги, разделение факса на страницы и завершение передачи.
Находясь в состоянии ожидания, факс-машина отображает на дисплее текущую дату и время. Диаграмма состояний этого объекта приведена на рис. 3.
Рис. 3. Факс — объект, состояние которого характеризуется переменными состояния и видами деятельности
Дополнительные обозначения для переходов: события и действия
К линиям перехода можно добавить дополнительные детали. Указывают также событие, которое привело к переходу (переключающее событие), и выполняемые вычисления (действия), которые приводят к изменению состояния. Чтобы добавить события и действия, нужно записать их возле линии перехода, отделяя друг от друга косой чертой. Иногда событие вызывает переход без всякого действия, а временами переход происходит из-за того, что в текущем состоянии выполнены все действия (не из-за события). Такой тип перехода называется безусловным переходом.
Переходы между состояниями можно рассмотреть на примере графического пользовательского интерфейса (GUI) компьютера. Предположим, что интерфейс может находиться в одном из трех состояний.
• Инициализация.
• Работа.
• Завершение работы.
При включении компьютера происходит загрузка. Поэтому включение компьютера является переключающим событием, которое приводит к переходу интерфейса в состояние Инициализация, а загрузка — действие, происходящее во время перехода.
Результатом выполнения действий в состоянии инициализации является выработка переключающего события, которое вызывает переход в состояние Работа. При щелчке на кнопке завершения работы осуществляется переход в состояние Завершение работы, и в конечном итоге компьютер выключается. На рис. 4 показана диаграмма, представляющая состояния и переходы для пользовательского интерфейса.
Рис. 4. Состояния и переходы графического пользовательского интерфейса с указанием переключающих событий, действия и безусловных переходов
