
- •Лабораторная работа по uml n2 «Работа со связями»
- •1. Ассоциации
- •2. Ограничения ассоциаций
- •В этом примере ограничение ассоциации Обслуживает указывает на то, что БанковскийСлужащий обслуживает клиентов в порядке очереди
- •3. Классы ассоциаций
- •4. Связи
- •5. Кратность
- •6. Квалификатор ассоциации
- •7. Рефлексивные ассоциации
- •8. Наследование и обобщение
- •9. Изучение наследования
- •10. Абстрактные классы
- •11. Зависимости
- •12. Объекты-агрегаты
- •17. Ограничения агрегаций
- •18. Композитные объекты
- •19. Контексты
- •20. Интерфейсы и реализации
- •Класс связан с интерфейсом отношением реализации, которое обозначается пунктирной линией с незакрашенным треугольником, примыкающим к интерфейсу и указывающим на него
- •21. Области видимости
- •Общедоступные и защищенные операции для автомобиля
- •22. Статические и динамические классы
- •Вопросы и ответы
- •Задание
12. Объекты-агрегаты
Иногда класс состоит из некоторого количества классов-компонентов. Это особый тип взаимосвязи, называемый агрегацией. Компоненты и класс, который они составляют, находятся в ассоциации часть-целое (part-whole). Например, домашний компьютер представляет собой агрегат, состоящий из системного блока, клавиатуры, манипулятора "мышь", монитора, устройства считывания компакт-дисков, одного или: .нескольких жестких дисков, модема, устройства чтения гибких дисков, принтера и, возможно, колонок. В свою очередь, системный блок, наряду с дисковыми накопителями, содержит оперативную память, графическую карту и звуковую карту (и, вероятно, какие-либо другие устройства).
Рис. 16. Ассоциация агрегации (часть-целое) представляется линией, соединяющей компонент и целое. с незакрашенным ромбом рядом с объектом-агрегатом
Агрегацию можно представить в виде дерева, корнем которого является "целое (например, компьютерная система), листьями - его компоненты. Целое с его компонентом соединяет линия с незакрашенным ромбом, расположенным вблизи целого. На рис. 16 показана компьютерная система в виде агрегата.
Хотя в этом примере каждый компонент принадлежит одному целому, для отношения агрегации это необязательно. Среди домашней техники пульт дистанционного управления может быть компонентом телевизора и видеомагнитофона одновременно.
17. Ограничения агрегаций
Иногда набор возможных компонентов агрегата описывается с помощью взаимосвязи ИЛИ. В некоторых ресторанах обед состоит из супа или салата, главного блюда и десерта. Для моделирования такого меню вам потребуется использовать ограничение — слово или в фигурных скобках на пунктирной линии, соединяющей две линии взаимосвязи "часть-целое" (рис. 17).
Рис. 17. На агрегацию можно наложить ограничение и показать, что частью целого является один из двух компонентов
Обратите внимание на сходство в использовании надписи {или} на рис. 17 (задает ограничение для агрегации) и на рис. 6 (задает ограничение для ассоциации).
18. Композитные объекты
Композит — это строгий тип агрегации, характеризующийся тем, что каждый элемент может принадлежать только одному целому. Компоненты кофейного столика — столешница и ножки — составляют композит. Символ композита совпадает с символом агрегации, за исключением того, что в этом случае используется закрашенный ромб (рис. 18).
Рис. 18. В композите каждый компонент принадлежит только одному целому. Эта взаимосвязь обозначается закрашенным ромбом
19. Контексты
При моделировании системы возникают группы (кластеры) классов, часто представляемые в виде агрегатов или композитов. Для выделения какого-либо кластера применяется диаграмма контекста UML. Для отображения композитов такая диаграмма слишком громоздка, она похожа на подробную карту области из карты большего масштаба. Для отображения всей детальной информации может понадобиться несколько карт областей.
Рассмотрим пример. Предположим, что вы создаете модель рубашки и хотите показать, как она вписывается в гардероб. Один тип контекстной диаграммы (рис. 19) отображает рубашку как большой прямоугольник класса с размещенной внутри него диаграммой. Эта диаграмма показывает связи компонентов друг с другом и является композитной (рубашка "обладает" всеми компонентами) контекстной диаграммой.
Рис. 19. Композитная контекстная диаграмма показывает компоненты класса и размещается внутри прямоугольника, соответствующего этому классу
Композитная контекстная диаграмма концентрирует внимание на рубашке и составляющих ее компонентах. Чтобы представить рубашку в контексте гардероба или комплекта одежды, нужно расширить угол обзора. Это позволяет сделать системная контекстная диаграмма. Она показывает как класс Рубашка связан с классами Гардероб и Комплект (рис. 20).
Рис. 20. Системная контекстная диаграмма отображает компоненты класса и его связи с другими классами системы
Подобным образом можно детализировать и другие классы на отдельных контекстных диаграммах.