11 о
Глава 4
Связи между классами (ассоциации) определяются
в
два этапа:
Этап 1. Начальный набор связей устанавливается на основе
анализа кооперативных диаграмм. Если два объекта взаимодей-
ствуют (обмениваются сообщениями), между ними на коопера-
тивной диаграмме должна существовать связь (путь взаимодейст-
вия),
которая преобразуется в двунаправленную ассоциацию
между соответствующими классами. Если сообщения между не-
которой парой объектов передаются только в одном направле-
нии, то для соответствующей ассоциации вводится направление
навигации.
Этап 2. Анализируются и уточняются ассоциации между
классами-сущностями. Задаются мощности ассоциаций, могут
использоваться множественные ассоциации, афегации, обобще-
ния и ассоциации-классы.
Упражнение 4.5.
Добавление связей
Добавим связи к классам, принимающим участие в варианте
использования Register for Courses. Для отображения связей меж-
ду классами построим три новых диаграммы классов в коопера-
ции Register for Courses пакета Use Case Realization - Register for
Courses (рис. 4.11
—
4.13).
Ha рис. 4.11 показаны только классы-сущности. Агрегация
между классами Student и Schedule отражает тот факт, что каждый
фафик является собственностью конкретного студента, принад-
лежит только ему. Предполагается также, что в системе будет хра-
ниться не только график текущего семестра, но и все фафики
студента за разные семестры. Между классами Schedule и
CourseOffering введены две ассоциации, поскольку конкретный
курс может входить в график студента в качестве основного (не
больше четырех курсов) и альтернативного (не больше двух кур-
сов).
К классу Student добавлены
^
два новых подкласса —
FulltimeStudent (студент очного отделения) и ParttimeStudent
(студент вечернего отделения).
На рис. 4.12 показаны ассоциации-классы, представляющие
свойства связей между классами Schedule и CourseOffering. Ассо-
циация, связывающая фафик и альтернативный курс, имеет толь-
ко один атрибут
—
статус курса в конкретном фафике (status), ко-
торый может принимать значения "включен в график", "отменен",