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

OpenU.Ru

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



navigability (возможность навигации)

Возможность навигации указывает, можно ли с помощью выражений, описывающих класс, получить объект или множество объектов, ассоциированных с экземпляром этого класса. Это понятие неприменимо к n-арным ассоциациям. Возможность навигации представляет собой перечисление с возможными значениями true (допускает навигацию) и false (не допускает навигацию).
См. navigation efficiency.

Семантика

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

Нотация

Ассоциация, допускающая навигацию, изображается в виде маршрута ассоциации, на полюсе которого располагается наконечник стрелки (направленный на целевой класс). Стрелка указывает направление навигации (рис. 131). Указатель возможности навигации можно скрыть (обычно сразу для всех ассоциаций на диаграмме). Стрелки могут прикрепляться к нулю, одному или обоим полюсам ассоциации.

Если ассоциация допускает навигацию в обоих направлениях, то наконечники стрелок можно не изображать. Теоретически в этом случае ее можно принять за ассоциацию, которая вообще не допускает навигацию, однако такие ассоциации встречаются очень редко (и оговариваются).
"Неопределенной" навигации нотация не нужна. Если направление навигации не определено, она считается двунаправленной. Любое последующее проектное решение либо ограничит такую навигацию, либо оставит без изменений.

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