Свойства ассоциаций на UML-схемах классов
На UML-схеме классов в Visual Studio Ultimate можно создавать ассоциации между любой парой типов.Тип — это класс, интерфейс или перечисление.
Ассоциация указывает, что разрабатываемая система хранит ссылки определенного вида между экземплярами связанных типов.Как правило, ассоциация не сообщает никаких сведений о реализации ссылок.Например, это могут быть указатели, строки в таблице, имена в XML, на которые даются перекрестные ссылки, и т. д.
Ассоциация — это схематический метод отображения атрибута или пары атрибутов.Например, если определено, что класс "Ресторан" имеет атрибут типа "Меню", то же самое определение можно выразить, создав ассоциацию между классом "Ресторан" и атрибутом типа "Меню".
Чтобы создать ассоциацию, щелкните инструмент Ассоциация на панели элементов, затем последовательно щелкните первый и второй тип.Можно щелкнуть один и тот же тип дважды, чтобы показать, что экземпляры одного типа могут быть связаны между собой.
Свойства
Далее приведены свойства ассоциации на UML-схеме классов.
Чтобы просмотреть свойства ассоциации, щелкните ассоциацию правой кнопкой мыши и выберите Свойства.Свойства отобразятся в окне свойств.
Некоторые свойства также видны на схеме, как показано на следующей иллюстрации.
Свойство. |
Описание |
---|---|
Имя (1) |
Обозначает ассоциацию.Также отображается на схеме рядом со средней точкой ассоциации. |
Полное имя |
Идентифицирует ассоциацию уникальным образом.Перед именем элемента указывается полное имя пакета, содержащего первую роль ассоциации. |
Рабочие элементы |
Число рабочих элементов, связанных с этой ассоциацией.Сведения о связывании рабочих элементов см. в разделе Связывание элементов модели и рабочих элементов. |
Цвет |
Цвет соединителя.В отличие от других свойств это свойство характеризует данное представление ассоциации, а не базовое отношение в модели. |
Первая роль Вторая роль |
Каждое окончание ассоциации называется ролью.Каждая роль описывает свойства эквивалентного атрибута класса на противоположном окончании ассоциации. На схеме в примере ассоциация между элементами "Меню" и "Пункт меню" имеет роли, которые называются "Меню" и "Содержимое". "Содержимое" — это имя атрибута для класса "Меню". |
Свойства каждой роли
Чтобы просмотреть свойства каждой роли, разверните свойство Первая роль или Вторая роль.
Свойство. |
Default |
Описание |
---|---|---|
Имя роли (2) |
Имя типа в данной роли |
Имя роли.Отображается рядом с окончанием ассоциации на схеме. |
Агрегат |
None |
Нет (4) — представляет общее отношение между экземплярами классов. Составной (5) — объект в этой роли содержит объект в противоположной роли.Чтобы создать ассоциацию с составным агрегатом, можно воспользоваться средством Составной. Сделано общим (6) — объект в этой роли содержит ссылки на объект в другой роли.Чтобы создать ассоциацию с таким агрегатом, можно воспользоваться средством Агрегат. Точная интерпретация значений свойств определяется локальными правилами. |
Является производным |
False |
Если значение true, объект на этом окончании связи вычисляется из других атрибутов и ассоциаций.Например, MyWorkPlace вычисляется из MyEmployer.WorkPlace.Сведения нужно записать в поле "Описание" или прикрепленное примечание. |
Является производным объединением |
False |
Если значение true, роль — это объединение набора ролей в производных типах. |
Является перемещаемым |
True |
Ассоциацию можно прочитать в этом направлении.Если предоставить описываемой программе экземпляр противоположной роли, она сможет эффективно определить связанный экземпляр этой роли. Если одна роль имеет свойство Is Navigable, а другая — нет, на ассоциации в направлении перехода появляется стрелка (7). По умолчанию средство связывания создает ассоциацию, переход по которой можно осуществить в одном направлении.Чтобы преобразовать ее в двунаправленную ассоциацию, можно выделить ассоциацию, щелкнуть появившийся тег действия и выбрать Сделать двунаправленной. |
Является доступным только для чтения |
False |
Если значение true, экземпляр ассоциации невозможно изменить после создания.Ссылка всегда относится к тому же объекту. |
Кратность (3) |
1 |
1 — это окончание ассоциации всегда связано с одним объектом.Каждый "Пункт меню" на рисунке относится к одному "Меню". 0..1 — либо это окончание ассоциации связано с одним объектом, либо связи не существует. * — каждый объект на другом окончании ассоциации связан с коллекцией объектов на этом окончании, и коллекция может быть пустой. 1..* — каждый объект на другом окончании ассоциации связан хотя бы с одним объектом на этом окончании.На рисунке каждое "Меню" имеет хотя бы один "Пункт меню". n..m — каждый объект на другом окончании имеет коллекцию, состоящую из ссылок на объекты на этом окончании в количестве от n до m. |
Является упорядоченным |
False |
Если значение true, возвращенная коллекция формирует последовательный список.Если кратность имеет значение больше 1. |
Является уникальным |
False |
Если значение true, в возвращенной коллекции нет повторяющихся значений.Если кратность имеет значение больше 1. |
Видимость |
Открытый |
Открытый — видимый глобально. Закрытый — не видимый за пределами типа-владельца. Защищенный — видимый типам, производным от владельца. Пакет — видимый другим типам в том же пакете. |
См. также
Основные понятия
UML-схемы классов: справочные материалы
Свойства типов на UML-схемах классов
Свойства атрибутов на UML-схемах классов