Пример выполнения лабораторной работы. Для создания кооперативной диаграммы достаточно открыть диаграмму последовательности и нажать клавишу F5.
Для создания кооперативной диаграммы достаточно открыть диаграмму последовательности и нажать клавишу F5.
Далее необходимо определить обязанности (responsibilities), атрибуты и ассоциации классов Обязанность (responsibility) – действия, которые объект обязан выполнять по запросу других объектов. Обязанность преобразуется в одну или более операций класса на шаге проектирования. Обязанности определяются, исходя из сообщений на диаграммах взаимодействия, и документируются в классах в виде операций «анализа», которые появляются там автоматически в процессе построения диаграмм взаимодействия (соотнесения сообщений с операциями). Так, диаграмма классов VOPC (classes only) после построения диаграмм взаимодействия должна принять вид, изображенный на рисунке 2.16.
Атрибуты классов анализа определяются исходя из знаний о предметной области, требований к системе и глоссария.
Перед добавлением атрибутов к классам необходимо выполнить предварительные настройки:
1) в меню модели выберите пункт меню Tools -> Options;
2) перейдите на вкладку Diagram;
3) убедитесь, что переключатель Show All Attributes помечен;
4) убедитесь, что переключатели Suppress Attributes и Suppress Operations не помечены.

Рисунок 2.16 – Диаграмма классов VOPC (classes only) с операциями «анализа»
Чтобы добавить атрибуты:
1) щелкните правой кнопкой мыши на классе Student;
2) в открывшемся меню выберите пункт New Attribute;
3) введите новый атрибут address;
4) нажмите клавишу Enter;
5) повторите шаги 1-4, добавив атрибуты name и studentID.
Добавьте атрибуты к классам CourseOffering, Shedule и PrimaryScheduleOfferingInfo, как показано на рисунке 2.17.
Связи между классами (ассоциации) определяются на основе диаграмм взаимодействия. Если два объекта взаимодействуют (обмениваются сообщениями), между ними должна существовать связь (путь взаимодействия).

Рисунок 2.17 – Классы с операциями «анализа» и атрибутами

Рисунок 2.18 – Диаграмма Entity Classes (классы-сущности)
Для ассоциаций задаются множественность и, возможно, направление навигации. Могут использоваться множественные ассоциации, агрегации и классы ассоциаций. Добавим связи к классам, принимающим участие в варианте использования Register for Courses.
Для отображения связей между классами построим три новые диаграммы классов в кооперации Register forCourses пакета Use-Case Realization – Register for Courses (рисунки 2.18 – 2.20).
Добавлены два новых класса – подклассы FulltimeStudent (студент очного отделения) и ParttimeStudent (студент вечернего отделения).

Рисунок 2.19 – Диаграмма CourseOfferingInfo
На диаграмме рисунка 2.20 показаны классы ассоциаций, описывающие связи между классами Schedule и CourseOffering и добавлен суперкласс ScheduleOfferingInfo.
Ассоциации создают непосредственно на диаграмме классов. Панель инструментов диаграммы классов содержит кнопки для создания как одно-, так и двунаправленных ассоциаций.
Чтобы на диаграмме классов создать ассоциацию:
1) нажмите на панели инструментов кнопку Association;
2) проведите мышью линию ассоциации от одного класса к другому.

Рисунок 2.20 – Полная диаграмма классов VOPC (без атрибутов и операций)
Чтобы задать возможности навигации по ассоциации:
1) щелкните правой кнопкой мыши на связи с того конца, на котором хотите показать стрелку;
2) в открывшемся меню выберите пункт Navigable.
Чтобы создать рефлексивную ассоциацию:
1) на панели инструментов диаграммы нажмите кнопку Association;
2) проведите линию ассоциации от класса до какого-нибудь места вне класса;
3) отпустите кнопку мыши;
4) проведите линию ассоциации назад к классу.
Для создания агрегаций проделайте следующие операции:
1) нажмите кнопку Aggregation панели инструментов;
2) проведите линию агрегации от класса-части к целому.
Чтобы поместить на диаграмму классов рефлексивную агрегацию:
1) на панели инструментов диаграммы нажмите кнопку Aggregation;
2) проведите линию агрегации от класса до какого-нибудь места вне класса;
3) отпустите кнопку мыши;
4) проведите линию агрегации назад к классу.
При создании обобщения может потребоваться перенести некоторые атрибуты или операции из одного класса в другой. Если, например, понадобится перенести их из подкласса в суперкласс Employee, в браузере для этого достаточно просто перетащить атрибуты или операции из одного класса в другой. Не забудьте удалить другую копию атрибута из второго подкласса, если он имеется.
Чтобы поместить обобщение на диаграмму классов:
1) нажмите кнопку Generalization панели инструментов;
2) проведите линию обобщения от подкласса к суперклассу.
Спецификации связей касаются имен ассоциаций, ролевых имен, множественности и классов ассоциаций.
Чтобы задать множественность связи:
1) щелкните правой кнопкой мыши на одном конце связи;
2) в открывшемся меню выберите пункт Multiplicity;
3) укажите нужную множественность;
4) повторите то же самое для другого конца связи.
Чтобы задать связи ролевое имя:
1) щелкните правой кнопкой мыши на ассоциации с нужного конца;
2) в открывшемся меню выберите пункт role Name;
3) введите ролевое имя.
Чтобы задать элемент связи (класс ассоциаций):
1) откройте окно спецификации требуемой связи;
2) перейдите на вкладку Detail;
3) задайте элемент связи в поле Link Element.
Аналогично выполняется анализ варианта использования Close Registration и дальнейшее построение соответствующих диаграммы взаимодействия и классов.
Не нашли, что искали? Воспользуйтесь поиском:
|