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