Шаг 171.
Унифицированный язык моделирования UML.
Моделирование семейства сигналов

    На этом шаге рассмотрим типичные приемы моделирования семейства сигналов в UML.

    В большинстве систем, управляемых событиями, события сигналов образуют иерархию. Например, автономный робот может различать внешние сигналы, такие как Collision (Столкновение), и внутренние, например HardwareFault (АппаратныйОтказ). Однако множества внешних и внутренних сигналов могут пересекаться. И даже внутри этих двух широких областей классификации можно обнаружить частные разновидности. К примеру, HardwareFault можно подразделить на BatteryFault (ОтказБатареи) и MovementFault (ОтказДвигательногоМеханизма). Допускается и дальнейшая специализация. Так, разновидностью сигнала MovementFault является MotorStall (ОстановЭлектромотора).

    Моделируя подобным образом иерархии сигналов, можно специфицировать полиморфные события. Рассмотрим, к примеру, автомат, в котором некоторый переход срабатывает только при получении сигнала MotorStall. Поскольку этот сигнал является в иерархии листовым, то переход инициируется только им, так что полиморфизм отсутствует. Но предположим теперь, что вы построили автомат, в котором переход срабатывает при получении сигнала HardwareFault. В этом случае переход полиморфен: его вызывает как сам сигнал HardwareFault, так и любая его специализация (разновидность), включая BatteryFault, MovementFault и MotorStall.

    Для моделирования семейства сигналов следует:

    На рис. 1 приведена модель семейства сигналов, которые могли бы обрабатываться автономным роботом.


Рис.1. Моделирование семейства сигналов

    Обратите внимание, что корневой сигнал RobotSignal (СигналРоботу) является абстрактным, то есть непосредственное создание его экземпляров невозможно. У этого сигнала есть две конкретные специализации (Collision и HardwareFault), одна из которых (HardwareFault) специализируется и дальше. Заметьте, что у сигнала Collision есть один параметр.

    На следующем шаге рассмотрим типичные приемы моделирования аварийных ситуаций в UML.




Предыдущий шаг Содержание Следующий шаг