А.М. Вендров - Объектно-ориентированный анализ и проектирование с использованием языка UML и Rational Rose, страница 9
Описание файла
PDF-файл из архива "А.М. Вендров - Объектно-ориентированный анализ и проектирование с использованием языка UML и Rational Rose", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 9 страницы из PDF
Щелкните на том состоянии, где осуществляется рефлексивный переход.Чтобы добавить событие, его аргументы, ограждающее условие и действие:1. Дважды щелкните на переходе, чтобы открыть окно его спецификации.2. Перейдите на вкладку General.3. Введите событие в поле Event.4. Введите аргументы в поле Arguments.5. Введите ограждающее условие в поле Condition.6. Введите действие в поле Action.Чтобы отправить событие:1. Дважды щелкните на переходе, чтобы открыть окно его спецификации.2. Перейдите на вкладку Detail.3.
Введите событие в поле Send Event.4. Введите аргументы в поле Send Arguments.5. Задайте цель в поле Send Target.Для указания начального или конечного состояния:1. На панели инструментов нажмите кнопку Start State или End State.2. Щелкните мышью на диаграмме состояний в том месте, куда хотите поместитьсостояние.Уточнение связей между классамиВ процессе проектирования связи между классами (ассоциации, агрегации и обобщения)подлежат уточнению.• Ассоциации между граничными и управляющими классами отражают связи,динамически возникающие между соответствующими объектами в потоке управления.Для таких связей достаточно обеспечить видимость классов, поэтому они преобразуютсяв зависимости.• Если для некоторых ассоциаций нет необходимости в двунаправленной связи, товводятся направления навигации.• Агрегации, обладающие свойствами композиции, преобразуются в связи композиции.Пример преобразования связей в соответствии с данными рекомендациями для классовварианта использования «Зарегистрироваться на курсы», приведен на рис.
2.30. Ассоциациямежду управляющим и граничным классами преобразована в зависимость. Агрегация междуклассами Student и Schedule обладает свойствами композиции. Направления навигации наассоциациях между классами Schedule и CourseOffering введены по следующим соображениям:49нет необходимости в получении списка графиков, в которых присутствует какой-либокурс, и количество графиков относительно мало по сравнению с количеством конкретных курсов.Рис. 2.30. Пример преобразования ассоциаций и агрегацийСвязи обобщения могут преобразовываться в ситуациях с так называемой метаморфозойподтипов. Например, в случае с системой регистрации студент может переходить с очной формыобучения на вечернюю, т.е., объект Student может менять свой подтип.
При таком изменениипридется модифицировать описание объекта в системе. Чтобы избежать этой модификации и темсамым повысить устойчивость системы, иерархия наследования реализуется с помощьюклассификации, как показано на рис. 2.31.Чтобы преобразовать агрегацию в композицию:1. Щелкните правой кнопкой мыши на том конце агрегации, который упирается в классчасть (на рис.2.30 – Schedule).2. В открывшемся меню выберите пункт Containment.3. Укажите метод включения By Value.Примечание.
Значение By Value предполагает, что целое и часть создаются и разрушаютсяодновременно, что соответствует композиции. Агрегация (By Reference) предполагает, что целое ичасть создаются и разрушаются в разное время.50Рис. 2.31. Преобразование обобщения2.10.4 Проектирование баз данныхПроектирование реляционных баз данных выполняется с использованием средства DataModeler. Его работа основана на известном механизме отображения объектной модели вреляционную.
Результатом является построение диаграммы «сущность-связь» и последующаягенерация описания БД на SQL.Упражнение 20. Проектирование реляционной базы данныхПроектирование БД состоит из следующих шагов:Создание нового компонента – базы данных:1. Щелкните правой кнопкой мыши на представлении компонентов.2. В открывшемся меню выберите пункт Data Modeler > New > Database.3. Откройте окно спецификации вновь созданного компонента DB_0 и в списке Targetвыберите Oracle 8.x.Определение устойчивых (persistent) классов:1. Откройте окно спецификации класса Student в пакете University Artifacts.2. Перейдите на вкладку Detail.3.
Установите значение переключателя Persistence в Persistent.4. Проделайте такие же действия для классов Classification, FulltimeClassification иParttimeClassification.5. Откройте класс Student в браузере, нажав “+”.6. Щелкните правой кнопкой мыши на атрибуте studentID.517. В открывшемся меню выберите пункт Data Modeler > Part of Object Identity(указание атрибута в качестве части первичного ключа).Создание схемы БД:1. Щелкните правой кнопкой мыши на пакете University Artifacts.2.
В открывшемся меню выберите пункт Data Modeler > Transform to Data Model.3. В появившемся окне в списке Target Database укажите DB_0 и нажмите ОК. В результатев логическом представлении появится новый пакет Schemas.4. Откройте пакет Schemas и щелкните правой кнопкой мыши на пакете <<Schema>> S_0.5. В открывшемся меню выберите пункт Data Modeler > New > Data Model Diagram.6.
Откройте пакет, затем откройте вновь созданную диаграмму «сущность-связь»NewDiagram и перенесите на нее все классы-таблицы, находящиеся в пакете <<Schema>>S_0. Получившаяся диаграмма показана на рис. 2.32.Рис. 2.32. Диаграмма «сущность-связь»52Генерация описания БД на SQL:1. Щелкните правой кнопкой мыши на пакете <<Schema>> S_0.2. В открывшемся меню выберите пункт Data Modeler > Forward Engineer.3. В открывшемся окне мастера Forward Engineering Wizard нажмите Next.4. Отметьте все флажки генерации DDL и нажмите Next.5.
Укажите имя и расположение текстового файла с результатами генерации и нажмитеNext.6. После завершения генерации откройте созданный текстовый файл и просмотритерезультаты.2.11. Реализация системы2.7.1 Создание компонентовВ Rational Rose диаграммы компонентов создаются в представлении компонентов системы.Отдельные компоненты можно создавать непосредственно на диаграмме, или перетаскивать ихтуда из браузера.Упражнение 21. Создание компонентовВыберем в качестве языка программирования С++ и для класса Student создадимсоответствующие этому языку компоненты.Создание диаграммы компонентов:1. Дважды щелкните мышью на главной диаграмме компонентов в представлениикомпонентов.2.
На панели инструментов нажмите кнопку Package Specification.3. Поместите спецификацию пакета на диаграмму.4. Введите имя спецификации пакета Student и укажите в окне спецификации язык С++.5. На панели инструментов нажмите кнопку Package Body.6. Поместите тело пакета на диаграмму.7. Введите имя тела пакета Student и укажите в окне спецификации язык С++.8. На панели инструментов нажмите кнопку Dependency.9. Проведите линию зависимости от тела пакета к спецификации пакета.StudentStudentРис. 2.33.
Диаграмма компонентов53Соотнесение классов с компонентами:1. В логическом представлении браузера найдите класс Student.2. Перетащите этот класс на спецификацию пакета компонента Student в представлениикомпонентов браузера. В результате класс Student будет соотнесен со спецификацией ителом пакета компонента Student.2.11.2 Генерация кодаПроцесс генерации кода состоит из шести основных шагов:1. Проверка корректности модели.2. Установка свойств генерации кода.3. Выбор класса, компонента или пакета.4.
Генерация кода.Для проверки модели:1. Выберите в меню Tools > Check Model.2. Проанализируйте все найденные ошибки в окне журнала.К наиболее распространенным ошибкам относятся такие, например, как сообщения надиаграмме последовательности или кооперативной диаграмме, не соотнесенные с операцией,либо объекты этих диаграмм, не соотнесенные с классом.С помощью пункта меню Check Model можно выявить большую часть неточностей иошибок в модели. Пункт меню Access Violations позволяет обнаруживать нарушения правилдоступа, возникающие тогда, когда существует связь между двумя классами разных пакетов, носвязи между самими пакетами нет.Чтобы обнаружить нарушение правил доступа:1. Выберите в меню Report > Show Access Violations.2.
Проанализируйте все нарушения правил доступа в окне.Можно установить несколько параметров генерации кода для классов, атрибутов,компонентов и других элементов модели. Этими свойствами определяется способ генерациипрограмм. Для каждого языка в Rose предусмотрен ряд определенных свойств генерации кода.Перед генерацией кода рекомендуется анализировать эти свойства и вносить необходимыеизменения.Для анализа свойств генерации кода выберите Tools > Options, а затем вкладкусоответствующего языка. В окне списка можно выбрать класс, атрибут, операцию и другиеэлементы модели.