Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.

active object (активный объект)

Объект, который владеет процессом или потоком управления и может инициировать управляющее воздействие. Экземпляр активного класса.
CM. passive object; process; thread,

Семантика

Активный объект не может выполняться ни в каком другом потоке, стеке фреймов или конечном автомате. В общем, выполнении системы у него есть независимый фокус управления. В некотором роде, это и есть поток управления. В активный объект нельзя войти повторно, поэтому без создания дополнительных объектов рекурсивное выполнение невозможно.
В стандартных компьютерных терминах активный объект является корнем выполнения стека фреймов. Создание активного объекта инициирует новый экземпляр конечного автомата. Выполнение стекового фрейма начинается при переходе в конечном автомате и продолжается до тех пор, пока не завершится действие перехода и пока объекту для продолжения работы не потребуются внешние входные данные.
Активный объект не существует в рамках другого объекта. Он может быть создан в результате действия другого объекта, но после этого становится совершенно независимым. Создать активный объект может и пассивный, и активный объект. Активным объектом управляют события. Операции, проводимые с ним другими объектами, должны быть реализованы в виде событий вызова.
Пассивный объект может быть создан как часть действия, совершаемого другим объектом. У пассивного объекта есть свое собственное адресное пространство; потока управления у него нет. Операции пассивного объекта вызываются внутри стека фреймов активного объекта. Пассивный объект можно моделировать при помощи конечного автомата - это позволит показать изменения его состояния, вызванные операциями над ним.
Выполнение процесса в стандартной операционной системе лучше всего выражать в виде активного объекта. Активным объектом может также реализовываться выполнение потока операционной системы.
Активность или пассивность объекта определяет, главным образом, разработчик. Причем это не ограничивает семантики самого объекта. Как активные, так и пассивные объекты могут иметь конечные автоматы и обмениваться событиями.

Нотация

На диаграммах кооперации активные объекты изображаются и виде прямоугольников с жирными границами. Часто они также изображаются в виде композитов со встроенными частями.
Активные объекты изображается в виде прямоугольников с жирными границами и с подчеркнутым названием, однако, они встречаются только в примерах выполнения (то есть не очень часто). Для обозначения активности объекта можно также пользоваться ключевым словом {active}.

Пример

На рис. 10 изображены три активных объекта автоматизированной фабричной системы: Robot (Робот), Oven (Печь) и Factory Manager (Фабричный диспетчер), который является в данной системе управляющим объектом. Все три объекта существуют и выполняют свои функции одновременно. В качестве первого шага диспетчер инициирует поток управления. Затем этот поток разделяется на два параллельных (А1 и В1), которые относятся уже соответственно к роботу и печи. Когда оба эти объекта завершат работу, потоки управления соединяются, опять-таки, у диспетчера (второй шаг). При этом каждый из объектов остается активным и сохраняет свое состояние до появления, следующего события.
Рис. 10. Кооперация с активными объектами и параллельным управлением
Рис. 10. Кооперация с активными объектами и параллельным управлением

Алфавитный указатель