Определение обязанностей, атрибутов и ассоциаций классов.Обязанность (responsibility) - действие, которое объект обязан выполнять по запросу других объектов. Обязанность преобразуется в одну или более операций класса на шаге проектирования. Обязанности определяются исходя из сообщений на диаграммах взаимодействия и документируются в классах в виде операций «анализа», которые появляются там автоматически в процессе построения диаграмм взаимодействия (соотнесения сообщений с операциями).
Так, диаграмма классов VOPC (classes only) после построения диаграмм взаимодействия в упражнении 8 должна принять следующий вид (рис. 17).
Рис.17. Диаграмма классов VOPC (classes only) с операциями «анализа»
Упражнение 9. Добавление атрибутов к классам Настройка В меню модели выберите пункт Tools > Options.
Перейдите на вкладку Diagram.
Убедитесь, что переключатель Show All Attributes помечен.
Убедитесь, что переключатели Suppress Attributes и Suppress Operations не помечены.
Добавление атрибутов Щелкните правой кнопкой мыши по классу Student.
Выберите пункт New Attribute в открывшемся меню.
Введите новый атрибут address.
Нажмите клавишу Enter.
Повторите шаги 1 - 4, добавив атрибуты name и studentID.
Добавьте атрибуты к классам CourseOffering. Schedule и PrimaryScheduleOfferingInfo, как показано на рис. 18.
Связи между классами (ассоциации) определяются на основе диаграмм взаимодействия. Если два объекта взаимодействуют (обмениваются сообщениями), между ними должна существовать связь (путь взаимодействия). Для ассоциаций задаются множественность и, возможно, направление навигации. Могут использоваться множественные ассоциации, агрегации и классы ассоциаций.
Упражнение 10. Добавление связей
Добавим связи к классам, принимающим участие в варианте использования Register for Courses. Для отображения связей между классами построим три новые диаграммы классов в кооперации Register for Courses пакета Use-Case Realization - Register for Courses (рис.19-21).
Добавлены два новых класса - подклассы FulltimeStudent (Студент очного отделения) и ParttimeStudent (Студент вечернего отделения).
На данной диаграмме показаны классы ассоциаций, описывающие связи между классами Schedule и CourseOffering, и добавлен суперкласс ScheduleOfferingInfo. Данные и операции, содержащиеся в этом классе (status - курс включен в график или отменен), относятся как к основным, так и к альтернативным курсам, в то время как оценка (grade) и окончательное включение курса в график могут иметь место только для основных курсов.
Рис.18. Классы с операциями «анализа» и атрибутами
Рис.21. Полная диаграмма классов VOPC (без атрибутов и операций)
Создание ассоциаций
Ассоциации создают непосредственно на диаграмме классов. Панель инструментов диаграммы классов содержит кнопки для создания как одно, так и двунаправленных ассоциаций. Для создания на диаграмме классов ассоциации сделайте следующее:
Нажмите на панели инструментов кнопку Association.
Проведите мышью линию ассоциации от одного класса к другому.
С целью задать возможности навигации по ассоциации необходимо выполнить следующие действия: Щелкните правой кнопкой мыши по связи с того конца, на котором хотите показать стрелку.
Выберите пункт Navigable в открывшемся меню.
Для того чтобы создать рефлексивную ассоциацию: На панели инструментов диаграммы нажмите кнопку Association.
Проведите линию ассоциации от класса до какого-нибудь места внекласса.