OpenU.Ru
Объект, который владеет процессом или потоком управления
и может инициировать управляющее воздействие. Экземпляр
активного класса.
CM. passive object; process;
thread,
Семантика
Активный объект не может выполняться ни в каком другом потоке,
стеке фреймов или конечном автомате. В общем,
выполнении системы у него есть независимый фокус управления. В некотором роде,
это и есть поток управления. В активный объект
нельзя войти повторно, поэтому без создания дополнительных объектов рекурсивное
выполнение невозможно.
В стандартных компьютерных терминах активный объект является корнем выполнения
стека фреймов. Создание активного объекта инициирует новый экземпляр конечного
автомата. Выполнение стекового фрейма начинается при переходе в конечном автомате
и продолжается до тех пор, пока не завершится действие перехода и пока объекту
для продолжения работы не потребуются внешние входные данные.
Активный объект не существует в рамках другого объекта. Он может быть создан
в результате действия другого объекта, но после этого становится совершенно
независимым. Создать активный объект может и пассивный,
и активный объект. Активным объектом управляют события. Операции, проводимые
с ним другими объектами, должны быть реализованы в виде событий вызова.
Пассивный объект может быть создан как часть действия, совершаемого другим объектом.
У пассивного объекта есть свое собственное адресное пространство; потока управления
у него нет. Операции пассивного объекта вызываются внутри стека фреймов активного
объекта. Пассивный объект можно моделировать при помощи конечного автомата -
это позволит показать изменения его состояния, вызванные операциями над ним.
Выполнение процесса в стандартной операционной системе лучше всего выражать
в виде активного объекта. Активным объектом может также реализовываться выполнение
потока операционной системы.
Активность или пассивность объекта определяет, главным образом, разработчик.
Причем это не ограничивает семантики самого объекта. Как активные, так и пассивные
объекты могут иметь конечные автоматы и обмениваться событиями.
Нотация
На диаграммах кооперации активные объекты изображаются и виде прямоугольников
с жирными границами. Часто они также изображаются в виде композитов со встроенными
частями.
Активные объекты изображается в виде прямоугольников с жирными границами и с
подчеркнутым названием, однако, они встречаются только в примерах выполнения
(то есть не очень часто). Для обозначения активности объекта можно также пользоваться
ключевым словом {active}.
Пример
На рис. 10 изображены три активных объекта автоматизированной фабричной системы:
Robot (Робот), Oven (Печь) и Factory Manager (Фабричный диспетчер), который
является в данной системе управляющим объектом. Все три объекта существуют и
выполняют свои функции одновременно. В качестве первого шага диспетчер инициирует
поток управления. Затем этот поток разделяется на два параллельных (А1 и В1),
которые относятся уже соответственно к роботу и печи. Когда оба эти объекта
завершат работу, потоки управления соединяются, опять-таки, у диспетчера (второй
шаг). При этом каждый из объектов остается активным и сохраняет свое состояние
до появления, следующего события.
Рис. 10. Кооперация с активными объектами и параллельным управлением