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

OpenU.Ru

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

activation (активация)

Выполнение операции. Активация, известная также под названием "фокус управления", представляет собой период времени, в течение которого объект совершает операцию (непосредственно или с помощью подчиненной операции). Посредством активации моделируется не только длительность выполнения операции, но и отношения управления между выполнением и участвующими объектами. В обычных компьютерах и языках программирования активация соответствует значению фрейма функции на стеке.
См. call; sequence diagram.

Семантика

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

Нотация

Активация изображается на диаграмме последовательности в виде высокого узкого прямоугольника (вертикальной полосы), верхняя часть которого соответствует времени ее запуска, а нижняя - времени окончания. Вид операции, которая была проделана в это время, обозначается в виде текстовой пометки у значка активации или у левого края, в зависимости от выбранного стиля нотации. Другой способ обозначения операции - значок входящего сообщения. В этом случае текстовую пометку у самой полоски-активации можно опустить. Если поток управления процедурный, то верхняя часть полоски-активации находится у наконечника стрелки, символизирующей входящее сообщение (которое инициирует действие). Заканчивается полоска, соответственно, у хвоста стрелки, показывающей возврат сообщения.
В случае если у нескольких объектов есть параллельная активация, то каждая из них показывает выполнение одного объекта. Если между объектами нет коммуникации, то активации независимы друг от друга и относительное время выполнения каждой несущественно для других.
В случае использования процедурного кода активация указывает на время, в течение которого активна процедура в этом объекте или вызванная ей подчиненная процедура (возможно, в другом объекте). Другими словами, все активные вложенные активации процедур показываются последовательно. В стандартном компьютере такое множество последовательных вложенных активаций составляет стек фреймов вычислений. В случае, когда объект с текущей активацией вызывается повторно, на диаграмме изображается второй вертикальный прямоугольник активации, чуть правее первого (слегка перекрывая его). "Перекрывающие" вызовы могут быть вложены на любую глубину. Они могут относиться как к одной и той же операции (рекурсивный вызов), так и к разным операциям над одним и тем же объектом.

Пример

На рис. 7 изображены активации, явившиеся в результате различных вызовов, в том числе и рекурсивного.
Рис. 7. Активации

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