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

Возвратные отношения

Несколько объектов, принадлежащих одному классу, могут взаимодействовать друг с другом. Такое взаимодействие показывается на диаграмме классов как возвратная (reflexive) ассоциация или агрегация. Для возвратных отношений обычно используется название роли, а не отношения.

Последовательность создания возвратного отношения в программе Rational Rose:

1. На панели инструментов щелкните по кнопке Association (Ассоциация) или Aggregation (Агрегация).

2. Щелкните по классу и проведите линии связи на свободное место диаграммы.

3. Отпустите кнопку мыши.

4. Щелкните по линии связи и перетащите ее обратно на тот же класс.

5. Введите название роли и мощность для каждого конца возвратной ассоциации или агрегации.

Возвратное отношение на рис. 6.8 можно интерпретировать следующим образом:

Рис. 6.8. Возвратное отношение

? один объект предмет, выступающий в качестве вводного курса (prerequisite), связан с нулем или более объектами предмет;

? один объект предмет связан с нулем или более объектами предмет, выполняющими функцию вводных курсов.

Поиск отношений

Чтобы определить наличие отношений между двумя классами, изучают сценарии. Передача сообщений между объектами указывает на то, что последние взаимодействуют друг с другом. Ассоциации и агрегации обеспечивают путь для взаимодействия.

Отношения могут быть также выявлены на основе сигнатуры операций (см. главу 7).

Отношения в системе регистрации учебных курсов

Взаимодействующие объекты и типы отношений, определенные для сценария добавить учебный курс, перечислены в табл. 6.1.

Таблица 6.1. Отношения между классами

Диаграмма классов с указанными отношениями изображена на рис. 6.9.

Рис. 6.9. Отношения в сценарии добавить учебный курс

Отношения между пакетами

Отношения между пакетами также включают в модель. Такой тип связи является отношением зависимости и изображается в виде пунктирной стрелки, направленной к зависимому пакету (см. рис. 6.10). Если пакет А зависит от пакета В, значит, один или несколько классов в пакете А инициируют связь с одним или более общедоступными классами в пакете В. Пакет А в этом случае называется пакетом- клиентом (client package), а пакет В — пакетом-поставщиком (supplier package).

Рис. 6.10. Отношения между пакетами

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

Отношения между пакетами в системе регистрации учебных курсов

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

Для создания отношений между пакетами в программе Rational Rose:

1. Щелкните по кнопке Dependency Relationship (Отношение зависимости) на панели инструментов.

2. Щелкните по пакету-клиенту и перетащите линию связи к пакету-поставщику.

Отношения между пакетами в системе регистрации учебных курсов показаны на рис. 6.11.

Рис. 6.11. Отношения между пакетами в системе регистрации учебных курсов

Резюме

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

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

Мощность определяет количество экземпляров класса, участвующих в отношении. Есть два индикатора мощности для каждого отношения ассоциации или агрегации — по одному с каждой стороны линии связи.

Несколько объектов, принадлежащих одному классу, могут взаимодействовать друг с другом. Такое взаимодействие изображается на диаграмме классов как возвратная ассоциация или агрегация.

Для выявления отношений между двумя классами изучают сценарии.

Пакеты могут быть связаны отношением зависимости. Если пакет А зависит от пакета В, значит, один или несколько классов в пакете А инициируют связь с одним или более общедоступными классами в пакете В.

Глава 7. Добавление поведения и структуры

Представление поведения и структуры

Класс реализует ряд обязанностей, от которых зависит поведение его объектов. Обязанности исполняются с помощью определенных для класса операций. Необходимо, чтобы операция выполняла только одну задачу и выполняла ее хорошо. Например, класс учебный курс (CourseOffering) должен добавлять и исключать студента. Для этой цели используются две операции: одна добавляет студента, другая — исключает. За всеми экземплярами класса закреплены соответствующие операции.

Структура (structure) объекта описывается атрибутами класса. Каждый атрибут — это поле данных, содержащееся в объекте класса. Объект, созданный на основе класса, наделен значениями всех атрибутов класса. Например, класс предмет (course) имеет следующие атрибуты: название (name), описание (definition) и количество учебных часов (credit hours). Следовательно, каждый объект предмет будет содержать значения перечисленных атрибутов. Они могут повторяться, так как в университете существуют учебные предметы с одинаковым количеством академических часов.

При формировании имен атрибутов и операций используется определенный стиль, благодаря которому достигается единообразие в описании классов и становится удобно работать с моделью и кодом.

Если какой-либо объект класса не наделен атрибутами или операциями, проверьте определение

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату