В рассматриваемом примере переключающим событием, вызывающим переход из состояния Отображение заставки в состояние Работа, может быть нажатие клавиши, перемещение указателя мыши или щелчок на кнопке. Любое из этих событий в конечном счете представляет собой сообщение пользователя GUI-интерфейсу. Это важное понятие, поскольку объекты взаимодействуют друг с другом путем передачи сообщений. В нашем случае переключающее событие является сообщением от одного объекта (пользователь) другому (GUI).
Сообщение, обеспечивающее переход на диаграмме состоянии объекта-получателя, называется сигналом. В рамках объектно-ориентированного подхода отправка сигнала представляется как создание экземпляра класса сигнала и передача его объекту-получателю. Сигнал имеет свойства, представляемые в виде атрибутов. Поскольку сигнал можно рассматривать как класс, то можно создать диаграмму классов, отражающую иерархию наследования сигналов.
Передачу сигналов и их иерархию удобно рассмотреть на примере пульта дистанционного управления телевизором. Этот пример позволяет также вспомнить о стереотипах, используемых в UML для расширения возможностей языка. Поскольку сигнал в UML можно представить как класс, то на диаграмме классов для каждого сигнала используется стереотип «сигнал». На рис. 9 представлена иерархия сигналов для модели пульта дистанционного управления телевизором. Возможно, модель вашего пульта несколько отличается от приведенной. Если это так, попробуйте смоделировать сигналы вашего пульта.
|
|
Рис. 9. Иерархия сигналов для пульта дистанционного управления телевизором
Между прочим, обозначение класса «сигнал» можно использовать для выделения события, переводящего объект из одного состояния в другое, как показано на рис. 10.
Рис. 10. Использование стереотипа класса «сигнал» для выделения события, вызывающего переход из состояния