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

    На этом шаге рассмотрим типичные приемы моделирования жизненного цикла объекта.

    Наиболее общее назначение автоматов – моделирование жизненного цикла объекта, в особенности если речь идет об экземплярах классов, вариантов использования и о системе в целом. В то время как взаимодействие моделирует поведение сообщества работающих вместе объектов, автомат моделирует поведение одного объекта в течение его жизненного цикла – например, так, как это бывает с пользовательскими интерфейсами, контроллерами и различными техническими устройствами.

    Когда моделируется жизненный цикл объекта, приходится явно специфицировать три момента: события, на которые объект может реагировать, непосредственную реакцию на эти события и влияние более раннего поведения на текущее. Кроме того, моделирование жизненного цикла объекта включает в себя принятие решений о порядке, в котором объект может осмысленно реагировать на события, начиная с момента его создания и заканчивая уничтожением.

    Чтобы смоделировать жизненный цикл объекта, необходимо:

    В примере на рис. 1 представлен автомат контроллера домашней системы сигнализации, которая отвечает за отслеживание показаний разнообразных датчиков, расположенных по периметру дома.


Рис.1. Моделирование жизненного цикла объекта

    В жизненном цикле этого контроллера имеются четыре основных состояния: Initializing (Инициализация – запуск работы), Idle (Простой – контроллер готов и ожидает сигналов тревоги или команд пользователя), Command (Команда – обработка команд пользователя) и Active (Активен – обработка сигнала тревоги). Впервые создаваемый объект контроллера сначала попадает в состояние Initializing, а затем безусловно переходит в состояние Idle. Подробности этих двух состояний не показаны, за исключением перехода в себя по истечении определенного периода времени (10 с) в состоянии Idle. Временные события подобного рода часто встречаются во встроенных системах, где присутствует таймер, вызывающий периодическую проверку работоспособности системы.

    Управление передается от состояния Idle в состояние Active по получении события alarm (тревога). Последнее сопровождается параметром s, идентифицирующим датчик, который был задет. При входе в состояние Active в качестве входного выполняется действие setAlarm (поднятьТревогу) и управление передается сначала состоянию Checking (Проверка), затем состоянию Calling (Вызов), обеспечивающему вызов охранной компании для регистрации сигнала тревоги, и, наконец, состоянию Waiting (Ожидание). Состояния Active и Waiting завершаются только при "очистке" сигнала тревоги (clearAlarm) или же по инициативе пользователя, при посылке события attention (внимание), предположительно предшествующего команде.

    Отметим, что конечного состояния здесь нет. И это опять же типично для встроенных систем, которые должны работать непрерывно.

    При моделировании автоматов на UML следует помнить, что каждый из них выражает динамические аспекты отдельного объекта, обычно представляющего экземпляр класса, варианта использования либо систему в целом. Хорошо структурированный автомат должен обладать следующими характеристиками:

    При изображении автомата в UML необходимо:

    На следующем шаге рассмотрим понятие активного объекта, потока и процесса в UML.




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