А.М. Вендров - Объектно-ориентированный анализ и проектирование с использованием языка UML и Rational Rose, страница 6
Описание файла
PDF-файл из архива "А.М. Вендров - Объектно-ориентированный анализ и проектирование с использованием языка UML и Rational Rose", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 6 страницы из PDF
В меню модели выберите пункт Tools > Options.2. Перейдите на вкладку диаграмм.3. Контрольные переключатели Sequence Numbering, Collaboration Numbering должны бытьпомечены, а Focus of Control – нет.4. Нажмите ОК, чтобы выйти из окна параметров.Создание диаграммы последовательности1. Щелкните правой кнопкой мыши на кооперации Register for Courses в пакете Use-CaseRealization - Register for Courses.2. В открывшемся меню выберите пункт New > Sequence Diagram.3. Назовите новую диаграмму Register for Courses - Basic Flow.4.
Дважды щелкните на ней, чтобы открыть ее.Добавление на диаграмму действующего лица, объектов и сообщений1. Перетащите действующее лицо «Студент» из браузера на диаграмму.2. Перетащите классы RegisterForCoursesForm и RegistrationController из браузера надиаграмму.3. На панели инструментов нажмите кнопку Object Message (Сообщение объекта).4.
Проведите мышью от линии жизни действующего лица «Студент» к линии жизниобъекта RegisterForCoursesForm.5. Выделив сообщение, введите его имя: // register for courses.286. Повторите действия 3 – 5, чтобы поместить на диаграмму остальные сообщения,как показано на рис. 2.10 (для рефлексивного сообщения 3 используется кнопка Messageto Self).Рис. 2.12 Диаграмма последовательности Register for Courses - Basic Flow (Update Schedule)Соотнесение сообщений с операциями1.
Щелкните правой кнопкой на тексте сообщении 1, // register for courses.2. В открывшемся меню выберите пункт <new operation>. Появится окно спецификацииоперации.3. В поле имени оставьте имя сообщения - // register for courses.4. Нажмите на кнопку ОК, чтобы закрыть окно спецификации операции и вернуться надиаграмму.5. Повторите действия 1 – 4, пока не соотнесете с операциями все остальные сообщения.Выполните аналогичные действия для создания диаграмм последовательности, показанныхна рис.
2.11 – 2.14. Обратите внимание, что на диаграмме рис. 2.14 появился объект нового классаPrimarySheduleOfferingInfo (ассоциации-класса, описывающего связь между классами Shedule иOfferingInfo), который нужно предварительно создать.29Рис. 2.13 Диаграмма последовательности Register for Courses - Basic Flow (Delete Schedule)Создание примечанийЧтобы поместить на диаграмму примечание:1. Нажмите на панели инструментов кнопку Note.2.
Щелкните мышью в том месте диаграммы, куда собираетесь поместить примечание.3. Выделив новое примечание, введите туда текст.4. Чтобы прикрепить примечание к элементу диаграммы, на панели инструментов нажмитекнопку Anchor Notes To Item (Прикрепить примечания к элементу).5. Нажав левую кнопку мыши, проведите указатель от примечания до элемента диаграммы,с которым оно будет связано. Между примечанием и элементом возникнет штриховаялиния.6. Чтобы создать примечание-ссылку на другую диаграмму (как это сделано на диаграммерис. 2.7 и других), создайте пустое примечание (без текста) и перетащите на него избраузера нужную диаграмму.Кроме примечаний, на диаграмму можно поместить также и текстовую область. С еепомощью можно, например, добавить к диаграмме заголовок.Чтобы поместить на диаграмму текстовую область:1. На панели управления нажмите кнопку Text Box.2.
Щелкните мышью внутри диаграммы, чтобы поместить туда текстовую область.3. Выделив эту область, введите в нее текст.30Рис. 2.14 Диаграмма последовательности Register for Courses - Basic Flow (Submit Schedule)Создание кооперативной диаграммыДля создания кооперативной диаграммы достаточно открыть диаграмму последовательностии нажать клавишу F5.Определение обязанностей (responsibilities), атрибутов и ассоциаций классовОбязанность (responsibility) – действие, которое объект обязан выполнять по запросу другихобъектов.
Обязанность преобразуется в одну или более операций класса на шаге проектирования.Обязанности определяются исходя из сообщений на диаграммах взаимодействия идокументируются в классах в виде операций «анализа», которые появляются там автоматически впроцессе построения диаграмм взаимодействия (соотнесения сообщений с операциями).Так, диаграмма классов VOPC (classes only) (рис.
2.9) после построения диаграммвзаимодействия в упражнении 8 должна принять следующий вид (рис. 2.15):31Рис. 2.15 Диаграмма классов VOPC (classes only) с операциями “анализа”Атрибуты классов анализа определяются, исходя из знаний о предметной области,требований к системе и глоссария.Упражнение 15. Добавление атрибутов к классамНастройка1. В меню модели выберите пункт Tools > Options.2. Перейдите на вкладку Diagram.3. Убедитесь, что переключатель Show All Attributes помечен.324.
Убедитесь, что переключатели Suppress Attributes и Suppress Operations непомечены.Добавление атрибутов1.2.3.4.5.6.Щелкните правой кнопкой мыши на классе Student.В открывшемся меню выберите пункт New Attribute.Введите новый атрибут addressНажмите клавишу Enter.Повторите шаги 1 – 4, добавив атрибуты name и studentID.Добавьте атрибуты к классам CourseOffering и Shedule, как показано на рис. 2.16.Рис. 2.16 Классы с операциями “анализа” и атрибутамиСвязи между классами (ассоциации) определяются в два этапа:1.
Начальный набор связей определяется на основе анализа кооперативных диаграмм. Еслидва объекта взаимодействуют (обмениваются сообщениями), между ними накооперативной диаграмме должна существовать связь (путь взаимодействия), котораяпреобразуется в двунаправленную ассоциацию между соответствующими классами. Еслисообщения между некоторой парой объектов передаются только в одном направлении, тодля соответствующей ассоциации вводится направление навигации.2. Анализируются и уточняются ассоциации между классами-сущностями.
Задаютсямощности ассоциаций, могут использоваться множественные ассоциации, агрегации,обобщения и ассоциации-классы.33Упражнение 16. Добавление связейДобавим связи к классам, принимающим участие в варианте использования Register forCourses. Для отображения связей между классами построим три новых диаграмм классов вкооперации Register for Courses пакета Use-Case Realization - Register for Courses (рис. 2.17 – 2.19).Рис. 2.17 Диаграмма Entity Classes (классы-сущности)На рис. 2.17 показаны только классы-сущности. Агрегация между классами Student иSchedule отражает тот факт, что каждый график является собственностью конкретного студента,принадлежит только ему. Предполагается также, что в системе будет храниться не только графиктекущего семестра, а все графики студента за разные семестры. Между классами Schedule иCourseOffering введено две ассоциации, поскольку конкретный курс может входить в графикстудента в качестве основного (не более четырех курсов) и альтернативного (не более двухкурсов).
К классу Student добавлены два новых подкласса – FulltimeStudent (студент очногоотделения) и ParttimeStudent (студент вечернего отделения).На рис. 2.18 показаны ассоциации-классы, представляющие свойства связей между классамиSchedule и CourseOffering. Ассоциация, связывающая график и альтернативный курс, имеет толькоодин атрибут – статус курса в конкретном графике (status), который может принимать значения«включен в график», «отменен», «внесен в список курса» и «зафиксирован в графике». Если курсв процессе закрытия регистрации переходит из альтернативного в основные, то ксоответствующей ассоциации добавляется атрибут «оценка» (grade).
Таким образом, ассоциациякласс PrimaryScheduleOfferingInfo наследует свойства ассоциации-класса ScheduleOfferingInfo(атрибуты и операции, содержащиеся в этом классе, относятся как к основным, так и кальтернативным курсам) и добавляет свои собственные (оценка и окончательное включение курсав график могут иметь место только для основных курсов), что и показано с помощью связиобобщения.На рис. 2.19 показана полная диаграмма классов варианта использования«Зарегистрироваться на курсы» (без атрибутов и операций). Ассоциации между граничными иуправляющими классами, а также между управляющими классами и классами-сущностямивведены на основе анализа кооперативных диаграмм и, в отличие от устойчивых структурных(семантических) связей между сущностями, отражают связи, динамически возникающие междусоответствующими объектами в потоке управления (в процессе работы приложения).
Поскольку34для ассоциаций это не свойственно, в дальнейшем (в процессе проектирования) они могутбыть преобразованы в зависимости.Рис. 2.18 Диаграмма CourseOfferingInfo (пример ассоциаций-классов)Создание ассоциацийАссоциации создают непосредственно на диаграмме классов. Панель инструментовдиаграммы классов содержит кнопки для создания как одно-, так и двунаправленных ассоциаций.Чтобы на диаграмме классов создать ассоциацию:1. Нажмите на панели инструментов кнопку Association.2. Проведите мышью линию ассоциации от одного класса к другому.Чтобы задать возможности навигации по ассоциации:1.
Щелкните правой кнопкой мыши на связи с того конца, на котором хотите показатьстрелку.2. В открывшемся меню выберите пункт Navigable.Чтобы создать рефлексивную ассоциацию:1. На панели инструментов диаграммы нажмите кнопку Association.2. Проведите линию ассоциации от класса до какого-нибудь места вне класса.3. Отпустите кнопку мыши.4. Проведите линию ассоциации назад к классу.35Рис. 2.19. Полная диаграмма классов VOPC (без атрибутов и операций)Создание агрегаций1.
Нажмите кнопку Aggregation панели инструментов.2. Проведите линию агрегации от класса-части к целому.Чтобы поместить на диаграмму классов рефлексивную агрегацию:1. На панели инструментов диаграммы нажмите кнопку Aggregation.2. Проведите линию агрегации от класса до какого-нибудь места вне класса.3. Отпустите кнопку мыши.4. Проведите линию агрегации назад к классу.Создание обобщенийПри создании обобщения может потребоваться перенести некоторые атрибуты или операциииз одного класса в другой. Если, например, понадобится перенести их из подкласса в суперкласс, вбраузере для этого достаточно просто перетащить атрибуты или операции из одного класса вдругой. Не забудьте удалить другую копию атрибута из второго подкласса, если он имеется.36Чтобы поместить обобщение на диаграмму классов:1.