- •Лабораторная работа №5
- •Основы объектной технологии
- •Объект-экземпляр
- •Объектная нотация
- •Как объекты кооперируются
- •Как объекты идентифицируют друг друга
- •Постоянная связь
- •Временная связь
- •Атрибуты
- •Тип атрибута, обозначающий класс
- •Видимость атрибутов
- •Операции
- •Видимость операций
- •Ассоциации
- •Порядок ассоциации
- •Кратность ассоциации
- •Ассоциативная связь и объем ассоциации
- •Ассоциативный класс
- •Наставление по моделированию анализа
- •Internet-магазин
- •Моделирование прецедентов
- •Субъекты
- •Прецеденты
- •Распределение требований по субъектам и прецедентам
- •Документирование прецедентов
- •Моделирование видов деятельности
- •Виды деятельности
- •Диаграмма видов деятельности
- •Моделирование классов
- •Соответствие функциональных требований и классов-сущностей (Іnternet - магазин)
- •Ассоциации
- •Агрегации
- •Обобщения
- •Диаграмма классов
- •Моделирование взаимодействий
- •Взаимодействия
- •Диаграмма последовательностей
- •Моделирование состояний
- •Состояния и переходы
- •Диаграмма состояний
Ассоциации
Ассоциация (association) представляет собой один из видов отношений между классами. Помимо ассоциации существуют такие виды отношений, как обобщение (generalization), агрегация (aggregation), зависимость (dependency) и некоторые другие.
Отношение ассоциации устанавливает связь между объектами данных классов. Объекты, которым требуется взаимодействовать друг с другом, могут использовать установленную связь. Обычно сообщения между объектами отправляются по ассоциативной связи.
Порядок ассоциации
Порядок ассоциации (association degree) определяет количество классов, соединенных с помощью ассоциации. Наиболее часто встречаются ассоциации второго порядка. Такая ассоциация называется бинарной ассоциацией.
Ее можно также определить на единственном классе. Тогда она называется унарной (unary) (или сингулярной (singular)) ассоциацией. Унарная ассоциация устанавливает связь между объектами одного класса.
Кратность ассоциации
Кратность ассоциации (association multiplicity) определяет, сколько объектов могут занимать позицию, указанную ролевым именем. Кратность говорит о том, сколько объектов целевого класса (указываемых ролевым именем) может быть ассоциировано с одним объектом исходного класса.
Кратность обозначается в виде диапазона целых чисел п1...п2. Число п1 определяет минимальное количество связываемых объектов, а п2 — максимальное количество (если мы не знаем точного максимального целочисленного значения, то вместо максимального количества может быть подставлена звездочка *).
Рисунок 5.8 - Кратность ассоциации
В языке UML термин "кратность" является очень емким. Минимальная кратность, равная "нулю" или "единице", может рассматриваться как еще одно семантическое понятие, называемое принадлежностью (membership) или участием (participation). "Нулевая" минимальная кратность означает необязательную принадлежность объекта ассоциации. "Единичная" кратность означает обязательную принадлежность. Например, предлагаемый курс обучения (объект CourseOffering) должен проводиться под руководством преподавателя (объект Teacher).
Свойство принадлежности само по себе обладает любопытными семантическими особенностями. Например, данная обязательная принадлежность может дополнительно означать, что принадлежность является фиксированной, т.е. если объект связан с целевым объектом в ассоциации, он не может быть повторно связан с другим целевым объектом в той же ассоциации [10].
Ассоциативная связь и объем ассоциации
Ассоциативная связь представляет собой экземпляр ассоциации. Это кортеж (tuple) ссылок на объекты. Кортеж может быть набором (set) ссылок или списком (list) (упорядоченным множеством) ссылок. В общем случае кортеж может содержать только одну ссылку. Как рассматривалось выше, связь также представляет ролевое имя. Объем (extent) ассоциации — это количество связей в наборе.
На рисунку 5.9 представлено пять связей. Следовательно, объем ассоциации равен пяти.
Рисунок 5.9 - Кратность ассоциации