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

7. Отношения между классами в uml. Примеры

Классы могут находиться между собой в различных отношениях (связях). Базовыми отношениями являются:

  • зависимость / dependency

  • ассоциация / association

  • агрегация / aggregation, в т.ч. композиция / composition

  • обобщение / generalization

  • реализация / realization.

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

А зависит от B, например, использует его операции.

Основные стереотипы зависимостей:

  • become – превращаться

  • bind – связывать

  • call – вызывать

  • copy – копировать

  • create – создавать

  • derive – выводить

  • extend – расширять

  • friend – быть дружественным

  • import – импортировать

  • include – включать

  • instance of – являться экземпляром

  • instantiate – создавать экземпляр

  • power type – множество всех типов

  • parameter – параметр

  • refine – уточнять

  • send – отправить

  • trace – трассировка

  • use - использовать

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

Пример бинарной ассоциации (участвуют два класса):

Иванов ООО «Ракурс»

Основные свойства:

  • имя (уникальное в пакете)

  • есть два полюса (у бинарной ассоциации)

  • направленность ►

  • каждый полюс связан с соответствующим классом

  • каждый полюс состоит из экземпляров соответствующего класса

  • множественность / multiplicity (проставляется у полюсов)

  • каждый полюс имеет имя – роль полюса (работник, работодатель)

  • навигация / navigable . Показывает, что со стороны противоположного полюса возможна навигация по экземплярам данного класса. Навигация может быть в одном, в двух направлениях или неопределенна.

В класс А добавляется дополнительный атрибут для доступа к чтению B (псевдоатрибут r2 : B). запрет навигации.

  • видимость:

  • + public

  • # private

  • - protected

  • ~ package

В ассоциации могут участвовать более двух классов: тернарная ассоциация.

В более сложных случаях сама ассоциация может быть классом: class assocication (используется в отношении M:N).

Исключающая ассоциация:

Агрегация (aggregation) - частный случай ассоциации, когда один из классов, называемых агрегатом, состоит из/включает в себя другие классы. Это отношение называется «часть/целое», part_of.

Это отношение позволяет разбивать систему на подсистемы, объекты на подобъекты. Рассматривается иерархия агрегации. Каждый из нижележащих классов м.б. представлен агрегацией. Принцип наследования свойств в агрегации не соблюдается.

Композиция (composition) – это такая агрегация, при которой составные части не имеют самостоятельного значения и не могут существовать отдельно.

part_of

Композитный объект, композитный класс, композитный элемент.

Обобщение (generalization) – таксономическое отношение между родителем предка и частными примерами.

overlapping

is_a

Обязательно соблюдается наследование признаков, свойств и поведения.

Overlapping / перекрытия.

Обобщение м.б. полным (complete) и неполным (incomplete). Полное включает все возможные классы ниже стоящего уровня. Неполные ограничиваются подмножеством. Многоточие показывает, что обобщение неполное. В UML допускается множественное наследование.

М.б. построена иерархия обобщений с неограниченным числом уровней. Всегда существует класс верхнего уровня – top-level класс.

Отношение реализации (realization) – это отношение между спецификацией и программной реализацией. Например, операция – метод. Client – тот, кто реализует; source – носитель спецификации. В UML источниками м.б. варианты использования, классы с неполной информацией, интерфейсы.