? один объект преподаватель в роли учителя связан с объектами учебный курс в количестве от нуля до четырех. Например: профессор Смит (объект преподаватель) читает курсы математика 101, раздел 1; алгебра 200, раздел 2; дифференциальное исчисление 1, раздел 3 (объекты учебный курс). Так как мощность связи ограничена значениями от нуля до четырех, с объектом преподаватель может быть связано от нуля до четырех объектов учебный курс.
Несколько объектов, принадлежащих одному классу, могут взаимодействовать друг с другом. Такое взаимодействие показывается на диаграмме классов как
Последовательность создания возвратного отношения в программе Rational Rose:
1. На панели инструментов щелкните по кнопке Association (Ассоциация) или Aggregation (Агрегация).
2. Щелкните по классу и проведите линии связи на свободное место диаграммы.
3. Отпустите кнопку мыши.
4. Щелкните по линии связи и перетащите ее обратно на тот же класс.
5. Введите название роли и мощность для каждого конца возвратной ассоциации или агрегации.
Возвратное отношение на рис. 6.8 можно интерпретировать следующим образом:
? один объект предмет, выступающий в качестве вводного курса (prerequisite), связан с нулем или более объектами предмет;
? один объект предмет связан с нулем или более объектами предмет, выполняющими функцию вводных курсов.
Чтобы определить наличие отношений между двумя классами, изучают сценарии. Передача сообщений между объектами указывает на то, что последние взаимодействуют друг с другом. Ассоциации и агрегации обеспечивают путь для взаимодействия.
Отношения могут быть также выявлены на основе сигнатуры операций (см. главу 7).
Взаимодействующие объекты и типы отношений, определенные для сценария добавить учебный курс, перечислены в табл. 6.1.
Диаграмма классов с указанными отношениями изображена на рис. 6.9.
Отношения между пакетами также включают в модель. Такой тип связи является отношением зависимости и изображается в виде пунктирной стрелки, направленной к зависимому пакету (см. рис. 6.10). Если пакет А зависит от пакета В, значит, один или несколько классов в пакете А инициируют связь с одним или более общедоступными классами в пакете В. Пакет А в этом случае называется пакетом- клиентом (client package), а пакет В — пакетом-поставщиком (supplier package).
Отношения между пакетами также выявляются путем изучения сценариев и отношений между классами системы. Так как это итеративный процесс, отношения могут измениться в ходе анализа и проектирования.
В сценарии добавить учебный курс класс добавление учебного курса отправляет сообщение классу менеджер курсов преподавателя. Это указывает на наличие связи между пакетами Интерфейсы и Объекты университета. На данном этапе мы не можем выделить какие-либо отношения с пакетом Сведения о людях.
Для создания отношений между пакетами в программе Rational Rose:
1. Щелкните по кнопке Dependency Relationship (Отношение зависимости) на панели инструментов.
2. Щелкните по пакету-клиенту и перетащите линию связи к пакету-поставщику.
Отношения между пакетами в системе регистрации учебных курсов показаны на рис. 6.11.
Отношения выступают в качестве проводника между объектами. Два типа объектных отношений, которые можно выделить на этапе анализа, — это ассоциации и агрегации. Ассоциацией называется двунаправленная семантическая связь между классами. Агрегация — это специальная форма ассоциации между целым и его частью или частями.
Ассоциации можно дать название. Обычно для этой цели используется глагол или фраза с глаголом, отражающая смысл связи. Вместо названия ассоциации может быть использована роль. Для ее названия выбирают существительное, описывающее роль, в которой один класс связан с другим классом.
Мощность определяет количество экземпляров класса, участвующих в отношении. Есть два индикатора мощности для каждого отношения ассоциации или агрегации — по одному с каждой стороны линии связи.
Несколько объектов, принадлежащих одному классу, могут взаимодействовать друг с другом. Такое взаимодействие изображается на диаграмме классов как возвратная ассоциация или агрегация.
Для выявления отношений между двумя классами изучают сценарии.
Пакеты могут быть связаны отношением зависимости. Если пакет А зависит от пакета В, значит, один или несколько классов в пакете А инициируют связь с одним или более общедоступными классами в пакете В.
Глава 7. Добавление поведения и структуры
Класс реализует ряд обязанностей, от которых зависит поведение его объектов. Обязанности исполняются с помощью определенных для класса операций. Необходимо, чтобы операция выполняла только одну задачу и выполняла ее хорошо. Например, класс учебный курс (CourseOffering) должен добавлять и исключать студента. Для этой цели используются две операции: одна добавляет студента, другая — исключает. За всеми экземплярами класса закреплены соответствующие операции.
При формировании имен атрибутов и операций используется определенный стиль, благодаря которому достигается единообразие в описании классов и становится удобно работать с моделью и кодом.
Если какой-либо объект класса не наделен атрибутами или операциями, проверьте определение