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

Лабораторная работа по uml n2 «Работа со связями»

В этой л/р Вы узнаете, как классы связываются друг с другом. Будут рассмотрены следующие понятия.

• Ассоциации.

• Кратность.

• Составные ассоциации.

• Рефлексивные ассоциации.

• Наследование и обобщение.

• Зависимости.

В модели, описанной в предыдущей л/р, был указан набор классов, представляю­щих словарь предметной области игры в баскетбол. Такая модель обеспечивает основу для дальнейшего исследования принципов игры. Очевидно, что она является неполной. Недостающая информация — это взаимодействие классов между собой. Если взглянуть на модель (см. рис. 15 л/р N 1), то можно заметить отсутствие связи игрока с мячом. Из самой модели не понятно, как игроки образуют команду или как происходит игра. Сконструи­рован лишь список терминов, но не "снимок" предметной области.

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

1. Ассоциации

Если классы концептуально взаимодействуют друг с другом, то такое взаимо­действие называется ассоциацией. Исходная модель игры в баскетбол содер­жит несколько подобных примеров. Рассмотрим одну ассоциацию — между игроком и командой. Ее можно охарактеризовать фразой "игрок играет в ко­манде" и отобразить в виде соединяющей два класса линии, указав имя ассо­циации (Играет в) прямо над этой линией. Для наглядности с помощью за­крашенного треугольника указывается направление взаимосвязи. На рис. 1 показано, как изобразить ассоциацию «Играет в» между игроком и командой.

Рис. 1. Ассоциация между игроком и командой

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

Рис. 2. В ассоциации каждый класс обычно иг­рает определенную роль, которую можно представить на диаграмме

Ассоциация может работать в другом направлении: команда нанимает игроков. Обе ассоциации можно показать на одной диаграмме, сопровождая их закрашенным треугольником соответствующей ориентации (рис. 3).

Рис. 3. На одной диаграмме можно пока­зать две ассоциации между классами

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

Рис. 4. С одним классом могут ассо­циироваться несколько других

2. Ограничения ассоциаций

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

Рис. 5. На ассоциацию можно наложить ограничение.

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