Отношения между классами
Двухместная связь (Binary Association) - это отношение между двумя классами, включая возможность рефлексивного отношения класса с самим собой. Изображается сплошной линией, соединяющей два класса. Линия может иметь один или несколько соединенных сегментов. Конец линии соединенный с классом называется ролью. Для связи может быть задано имя , которое представляет отношение в целом, оно не должно располагаться вблизи краев линии для того, что бы не возникало конфликтов с именованием ролей.
В следующем примере указано отношение между двумя классами “линия” и “точка”. Отношение имеет имя “Содержать”, роли для каждого из классов называются соответственно “Включает” и “Входит в” (рис. 36):
Содержать>
Включает Входит в
Рис. 36. Пример отношения.
Для каждой роли может быть определена дополнительная информация следующего вида:
множественность,
сортировка,
квалификатор,
имя роли,
спецификация интерфейса,
изменяемость,
видимость.
Множественность, определяет количество экземпляров классов, участвующих в отношении. Множественность определяется в виде одного или нескольких диапазонов:
нижняя граница .. верхняя граница
в качестве нижней или верхней границы может быть задан символ *, обозначающий произвольное количество. Может использоваться перечисление диапазонов через запятую. Пример допустимых вариантов:
1..*
*
Сортировка, определяет тип упорядочения элементов для множественности больше чем 1. Возможные значения: упорядочено, неупорядочено.
Символ агрегации, это ромб, находящийся между линией и классом (рис. 37). Символ агрегации обозначает, что класс, вблизи которого изображен данный знак, является накопителем для класса, находящегося на другом конце связи. Если ромб залит черным цветом, то это обозначает усиленный вариант агрегации, называемый композиция. Символ агрегации может находиться только на одном конце связи.
Рис. 37. Пример агрегации
Квалификатор, это один или несколько атрибутов, значения которых обеспечивают идентификацию экземпляров класса по данной связи. Множественность, указанная для роли, при наличии квалификатора указывает на количество экземпляров класса, выбираемых одним значением квалификатора. Наиболее часто используются следующие значения для множественности: 0..1 - уникальный экземпляр может быть выбран, но не обязательно будет выбран; 1 - каждое значение квалификатора однозначно выбирает экземпляр класса; * - одному значению квалификатора соответствует множество экземпляров. Графически квалификатор обозначается как прямоугольник, в котором указаны имена атрибутов, являющихся квалификатором. Прямоугольник располагается между линией связи и классом. Ниже представлен пример, в котором классы "линия" и "точка" связаны отношением “входить в”. Квалификатором является координата точки (рис. 38). Множественность со стороны класса “точка” равна 0..1, что обозначает, что каждая точка линии должна иметь уникальные координаты. Множественность со стороны класса “линия” равна *, что обозначает, что разные линии могут иметь общие точки.
Рис. 38. Пример использования квалификатора
Имя роли, произвольный идентификатор, конкретизирующий роль связи для одного из классов, указывается на линии вблизи класса.
Дата добавления: 2016-05-16; просмотров: 578;