Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_4_UML_СВЯЗИ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
201.22 Кб
Скачать

12. Объекты-агрегаты

Иногда класс состоит из некоторого количества классов-компонентов. Это особый тип взаимосвязи, называемый агрегацией. Компоненты и класс, ко­торый они составляют, находятся в ассоциации часть-целое (part-whole). Например, домашний компьютер представляет собой агрегат, состоящий из системного блока, клавиатуры, манипулятора "мышь", монитора, устройства считывания компакт-дисков, одного или: .нескольких жестких дисков, модема, устройства чтения гибких дисков, принтера и, возможно, колонок. В свою очередь, системный блок, наряду с дисковыми накопителями, со­держит оперативную память, графическую карту и звуковую карту (и, ве­роятно, какие-либо другие устройства).

Рис. 16. Ассоциация агрегации (часть-целое) представляется линией, соединяющей компонент и це­лое. с незакрашенным ромбом рядом с объектом-агрегатом

Агрегацию можно представить в виде дерева, корнем которого является "целое (например, компьютерная система), листьями - его компоненты. Целое с его компо­нентом соединяет линия с незакрашенным ромбом, расположенным вблизи целого. На рис. 16 показана компьютерная система в виде агрегата.

Хотя в этом примере каждый компонент принадлежит одному целому, для отно­шения агрегации это необязательно. Среди домашней техники пульт дистанционного управления может быть компонентом телевизора и видеомагнитофона одновременно.

17. Ограничения агрегаций

Иногда набор возможных компонентов агрегата описывается с помощью взаимо­связи ИЛИ. В некоторых ресторанах обед состоит из супа или салата, главного блюда и десерта. Для моделирования такого меню вам потребуется использовать ограниче­ние — слово или в фигурных скобках на пунктирной линии, соединяющей две линии взаимосвязи "часть-целое" (рис. 17).

Рис. 17. На агрегацию можно наложить ограничение и показать, что частью целого является один из двух компонентов

Обратите внимание на сходство в использовании надписи {или} на рис. 17 (задает ограничение для агрегации) и на рис. 6 (задает ограничение для ассоциации).

18. Композитные объекты

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

Рис. 18. В композите каждый компонент принадлежит только одно­му целому. Эта взаимосвязь обозначается закрашенным ромбом

19. Контексты

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

Рассмотрим пример. Предположим, что вы создаете модель рубашки и хотите по­казать, как она вписывается в гардероб. Один тип контекстной диаграммы (рис. 19) отображает рубашку как большой прямоугольник класса с размещенной внутри него диаграммой. Эта диаграмма показывает связи компонентов друг с другом и является композитной (рубашка "обладает" всеми компонентами) контекстной диаграммой.

Рис. 19. Композитная контекстная диаграмма показывает компоненты класса и размещается внутри прямоугольника, соответствующего этому классу

Композитная контекстная диаграмма концентрирует внимание на рубашке и со­ставляющих ее компонентах. Чтобы представить рубашку в контексте гардероба или комплекта одежды, нужно расширить угол обзора. Это позволяет сделать системная контекстная диаграмма. Она показывает как класс Рубашка связан с классами Гардероб и Комплект (рис. 20).

Рис. 20. Системная контекстная диаграмма отображает компоненты класса и его связи с другими классами системы

Подобным образом можно детализировать и другие классы на отдельных контек­стных диаграммах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]