
- •«Диаграммы состояний»
- •1. Что такое диаграмма состояний
- •Набор символов
- •Дополнительные элементы в изображении состояния
- •Дополнительные обозначения для переходов: события и действия
- •Дополнительные обозначения для переходов: условия переходов
- •2. Подчиненные состояния
- •Последовательные подчиненные состояния
- •Параллельные подчиненные состояния
- •3. История состояний
- •4. Сообщения и сигналы
- •5. Зачем нужны диаграммы состояний
- •Дополнение к общей картине
- •6. Резюме
- •Вопросы и ответы
- •Задание
Дополнительные обозначения для переходов: условия переходов
Предыдущий пример с графическим пользовательским интерфейсом значительно упрошен. Во-первых, если на компьютере не выполняются никакие действия, активизируется заставка экрана. Выражаясь в терминах изменения состояний, эту ситуацию можно охарактеризовать так. Если по истечении заданного интервала времени не наблюдается пользовательской активности, пользовательский интерфейс переходит из состояния Работа в неотраженное на рис. 4 состояние — Отображение заставки. Временной интервал, по истечении которого происходит включение заставки, задается с использованием панели управления Windows. Обычно он составляет 15 минут. Любое нажатие клавиши или перемещение указателя "мыши" переключает монитор из состояния Отображение заставки в состояние Работа.
Этот пятнадцатиминутный интервал времени и является условием перехода — когда это время истекает, осуществляется переход. На рис. 5 представлена более полная диаграмма состояний GUI с состоянием Отображение заставки и условием перехода. Примечательно, что условие перехода [время истекло] представляет собой логическое выражение.
Рис. 5. Диаграмма состояний графического пользовательского интерфейса с состоянием Отображение заставки и условием перехода
2. Подчиненные состояния
В приведенной модели GUI все еще чего-то не хватает. Состояние Работа, в частности, является более сложным по сравнению с изображенным на рис. 4 и 5.
Когда GUI находится в состоянии Работа, выполняется много действий, но не все они отражаются на экране. Интерфейс GUI постоянно ожидает действий пользователя — нажатия клавиш, перемещения указателя мыши или щелчка на кнопке. При выполнении таких действий интерфейс должен зарегистрировать событие и изменить содержимое экрана, чтобы отобразить действия пользователя, например, переместить указатель при движении мыши или вывести символ "а" при нажатии клавиши <а>.
Находясь в состоянии Работа, GUI-интерфейс претерпевает внутренние изменения состояния. Поскольку такие состояния относятся к одному более общему состоянию, они называются подчиненными. Существуют два типа подчиненных состояний: последовательные и параллельные.
Последовательные подчиненные состояния
Как следует из самого названия, такие состояния наступают одно за другим. Переходы подчиненных состояний GUI в рамках состояния Работа могут выполняться в следующей последовательности.
• Ожидание ввода пользователя.
• Регистрация ввода пользователя.
• Визуализация ввода пользователя.
Ввод информации пользователем обеспечивает переход из состояния Ожидание ввода пользователя к состоянию Регистрация ввода пользователя. Выполнение действий в состоянии Регистрация ввода пользователя переводит пользовательский интерфейс в состояние Визуализация ввода пользователя. После выполнения всех действий в третьем состоянии GUI-интерфейс возвращается в состояние Ожидание ввода пользователя. На рис. 6 показано, как представить последовательные подчиненные состояния в состоянии Работа.
Рис. 6. Последовательные подчиненные состояния GUI-интерфейса для состояния Работа