![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Связь представляет собой семантическую взаимосвязь между классами. Она позволяет классу узнавать об атрибутах, операциях и связях другого класса. Существуют четыре типа связей, которые могут быть установлены между классами: ассоциации, зависимости, агрегации и обобщения.
Ассоциация (association) — это семантическая связь между классами. Ее рисуют на диаграмме классов в виде обыкновенной линии. После того как классы связали ассоциацией, они могут передавать друг другу сообщения на диаграмме последовательности или кооперативной диаграмме. Ассоциации могут быть двунаправленными или однонаправленными. На языке UML двунаправленные ассоциации изображают в виде простой линии без стрелок или со стрелками с обеих сторон. На однонаправленной ассоциации ставят только одну стрелку, показывающую направление связи. После определения ассоциации Rose помещает в классы соответствующие дополнительные атрибуты.
Связь зависимости (dependency) также отражает связь между классами, но делает это несколько иначе. Зависимости всегда однонаправленные, они показывают, что один класс зависит от определений, сделанных в другом. Специальные атрибуты для классов, связанных зависимостью, не создаются. Зависимости изображают в виде стрелки, проведенной пунктирной линией.
Агрегация (aggregation) представляет собой более тесную форму ассоциации. Агрегация — это связь между целым и его частями. Агрегацию изображают в виде линии с незакрашенным ромбиком у класса, являющегося целым.
Отношение композиции является частным случаем отношения агрегации. Это отношение служит для выделения специальной формы отношения «часть-целое», при которой части не могут выступать в отрыве от целого, т.е. с уничтожением целого уничтожаются и все его составные части. Графически отношение композиции изображается сплошной линией, один из концов которой представляет собой закрашенный внутри ромб. Этот ромб указывает на тот из классов, который является классом-композицией или «целым».
С помощью обобщений (generalization) показывают связи наследования между двумя классами. На языке UML связь наследования называют обобщением и изображают в виде соответствующей стрелки от класса-потомка к классу-предку.
Зависимости можно устанавливать не только между классами, но и между пакетами. Фактически, это единственный тип связей, существующий между пакетами. Как и в случае классов, зависимость между пакетами изображают пунктирной линией. Зависимости определяют возможность повторного использования пакетов. Зависимости между пакетами можно обнаружить, исследуя связи на диаграмме классов. Если два класса из различных пакетов связаны, эти пакеты также связаны. Создавая зависимости между пакетами, старайтесь избегать циклических зависимостей.
До начала генерации кода необходимо указать также множественность связи, иначе будут заданы значения по умолчанию. Множественность (multiplicity) показывает, сколько экземпляров одного класса взаимодействуют с помощью связи с одним экземпляром другого класса в данный момент времени. Ее индикаторы устанавливаются на обоих концах линии связи. Значение множественности позволяет понять, является ли данная связь обязательной.
Как и другим элементам модели, связям разрешается назначать стереотипы. Они применяются для классификации связей. Стереотипы пишут вдоль линии связи в двойных угловых скобках.
Дата публикования: 2014-11-03; Прочитано: 998 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!