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