Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабUML.doc
Скачиваний:
30
Добавлен:
16.03.2015
Размер:
1.46 Mб
Скачать

И

Класс в

Класс А

Источник 2

Источник 1

сточников зависимости может быть несколько:

Клиент

Класс C

Отношение зависимости является наиболее общим в языке UML. Все остальные могут считаться частным случаем этого отношения.

Ассоциация (association) – описывает связи между экземплярами классов (объектами). Для понимания семантики этой связи нужно оперировать с частными примерами классов (в отличие от зависимости, которые относятся к классу в целом). Кроме того, в ассоциации проставляется множественность участия экземпляров в связи и обязательность. Обозначается непрерывной сплошной линией

Наиболее проста бинарная ассоциация, в которой участвуют в точности два класса или, как исключение, один класс, связанный сам с собой. В бинарной ассоциации может быть указано направление связи – зачернённым треугольником.

Экземпляром этого отношения является, например, пара Иванов – ООО «Ракурс».

В N–арной ассоциацииучаствуют три и более класса, при этом один класс может участвовать в ассоциации более, чем один раз. Каждый экземпляр такой ассоциации - N-мерный кортеж из объектов соответствующих классов.

Графически N-арная ассоциация обозначается ромбом. Пример:тернарная ассоциация из классов: футбольная команда, год, игра ( ).

При этом нас интересуют игры в футбольном чемпионате за несколько последних лет. Каждый класс в ассоциации может играть свою роль, которая может быть проставлена у полюса(конца) ассоциации в виде строки текста. Например: год игры, год проведения чемпионатов мира и т.д., т.е. класс может играть разные роли в разных отношениях.

Важной характеристикой ассоциации является множественность ассоциации. Обозначения множественности такие же, как у атрибутов класса (см. раздел ). Символ “*” обозначает “0. .*”, т.е. необязательность связи. Ассоциация представляет собой ссылки на соответствующие объекты. В процессе работы системы связи могут появляться и исчезать, соответственно списки корректируются у одного или обоих полюсов.

В более сложном случае ассоциация может быть классом (класс – ассоциация,associationclass), в нём присутствуют и свойства класса, и свойства ассоциации. Экземплярами класса являются связи, в которых имеются не только ссылки на объекты, но и конкретные значения атрибутов. Классы – ассоциации могут иметь операции, изменяющие атрибуты связи, могут участвовать в различных ассоциациях, но между собой ассоциаций иметь не могут.

Пример обозначения класса-ассоциации Работает впредставлен на рисунке .

*

1..*

Фирма

Сотрудник

оклад

Работает в

З

Обладатель работы

десьокладявляется единственным атрибутом класса-ассоциации, он может для конкретных экземпляров связи принимать только одно значение. Такой подход уместен при связи многие ко многим. Иначе можно было бы включитьокладв атрибуты одного из классов. Однако, если требуется отобразить историю окладов для одного и того же

Роль фирмы

Роль сотрудника

экземпляра связи, например, несколько значений окладов сотрудника по месяцам, то класс-ассоциацию уже использовать нельзя. Нужно вводить обычный класс с атрибутами (рис ).

предоставляет

имеет

1

*

*

1

Является

источником работы

  1. Частным случаем ассоциации является исключающая ассоциация(xor association). Она представляет собой две или более ассоциаций, которые одним полюсом крепятся к единому (базовому) классу.

  2. Показывает, что из нескольких вариантов ассоциация в каждый момент времени может использоваться только одна: счёт в банке может быть открыт для физического лица или организации (юридического лица).

  1. Важным частным случаем ассоциации является агрегация.

  2. Агрегация (Aggregation)– один из классов (агрегат) состоит из (включает в себя, характеризуется) других классов. (отношение часть/ целое (Part of)). Это отношение является фундаментальным при моделировании сложной системы, позволяет декомпозировать систему на составные части. В агрегации принцип наследованияне 7соблюдается. Каждая часть обладает своими атрибутами и поведением. Агрегация в UML обозначается ромбом или