Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.раб.8 ПОСТРОЕНИЕ И ОБСУЖДЕНИЕ UML-ДИАГРАММ.doc
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
23.83 Mб
Скачать

2.1 Именование отношений

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

Чтобы указать названия отношений в программе Rational Rose:

  1. На диаграмме классов выделите линию связи, щелкнув по ней мышью.

  2. Введите название отношения (см. рис. 4.3).

Рис.4.3

Именование ролей

Окончание линии ассоциации в месте, где она соединяется с классом, называется ролью ассоциации. Название роли может быть использовано вместо названия ассоциации. Для этой цели выбирают существительное, описывающее роль, в которой один класс выступает в связи с другим классом. Название роли помещается на линии связи около класса, к которому оно применяется, - с одного или с обоих концов линии связи. Обычно нет необходимости использовать одновременно названия роли и отношения.

Для ввода названия роли в программе Rational Rose:

  1. Щелкните правой кнопкой мыши по линии ассоциативной связи рядом с классом, к которому применяется роль.

  2. В появившемся контекстно-зависимом меню выберите команду Role Name (Название роли).

  3. Введите название роли.

На рис. 4.4 показана ассоциативная связь с названием роли.

Рис.4.4

Отношение, изображенное на рис. 4.4, можно прочитать в обоих направлениях:

  • преподаватель играет роль учителя для учебного курса;

  • учебный курс имеет отношение к преподавателю, играющему роль учителя.

В вопросе присваивания названий отношениям или ролям стандартов нет. Однако многие разработчики предпочитают использовать названия ролей вместо названий ассоциаций, потому что первые лучше передают смысл связи. Это характерно для двунаправленных отношений, так как для них трудно подобрать глагольное выражение, которое бы читалось корректно в обоих направлениях.

Названия ассоциативных отношений и ролей применяются только для придания ясности модели. Если существует отношение между компанией и сотрудником, можно подобрать глагол "работает" для названия ассоциации или существительные "сотрудник" и "работодатель" для названия ролей, чтобы показать смысл связи. Если же дать классам имена сотрудник (employee) и работодатель (employer), необходимость в дополнительных названиях отпадет, так как смысл отношения понятен по названиям классов.

2.2 Мощность отношений

Мощность (multiplicity) отношения указывается для классов и определяет допустимое количество объектов, участвующих в отношении с каждой стороны. Есть два индикатора мощности для каждого отношения ассоциации или агрегации - по одному с каждой стороны линии связи. Перечислим основные индикаторы мощности

1 - ровно один;

0...* - ноль или больше;

1...* - один или больше;

0...1 - ноль или один;

5...8 - определенный диапазон (5, 6, 7 или 8);

4...7, 9 - комбинация (4, 5, 6, 7 или 9),

Чтобы определить мощность в программе Rational Rose

  1. Дважды щелкните по линии связи на диаграмме - откроется диалоговое окно Specification (Параметры).

  2. Перейдите на вкладку Role A Detail или Rile B Detail, соответствующую одной из двух ролей связи (А или В).

  3. В поле Multiplicity введите требуемое значение признака множественности.

  4. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно настройки параметров отношения.

Индикаторы мощности показаны на рис. 4.5.

Рис.4.5

Диаграмму на рис. 4.5 можно объяснить так:

  • один объект учебный курс связан с одним объектом преподаватель, который играет роль учителя. Например: математика 101, раздел 1 (объект учебный курс) имеет отношение к профессору Смиту (объект преподаватель);

  • один объект преподаватель в роли учителя связан с объектами учебный курс в количестве от нуля до четырех. Например: профессор Смит (объект преподаватель) читает курсы математика 101, раздел 1; алгебра 200, раздел 2; дифференциальное исчисление 1, раздел 3 (объекты учебный курс). Так как мощность связи ограничена значениями от нуля до четырех, с объектом преподаватель может быть связано от нуля до четырех объектов учебный курс.