Лабораторные по UML в среде Rational Rose+RoseDelphiLink. Руководство по выполнению лабораторных работ
![]()
|
Соотнесение классов с компонентами1. В Логическом представлении браузера найдите класс Orderпакета Entities. 2. Перетащите этот класс на спецификацию пакета компонента Order_ в представлении Компонентов браузера, В результате класс Order будет соотнесен со спецификацией пакета компонента Order_. 3. Повторив шаги 1 — 2, соотнесите классы со следующими компонентами: • Класс OrderItem со спецификацией пакета OrderItem_ • Класс Orderоptionsсо спецификацией пакета Orderоptions_ • Класс OrderDetail со спецификацией пакета OrderDetai_l • Класс OrderMgr со спецификацией пакета OrderMgr_ • Класс TransactionMgr со спецификацией пакета TransactionMgr_ В результате в браузере после имени класса, в скобках появятся имена компонентов, с которыми этот класс связан (рис. 13) ![]() Рис. 13 Представление компонентов и классов в браузере Лабораторная работа 11. Кодогенерация проекта в Delphi. Теперь вся информация подготовлена к тому, чтобы запрограммировать классы с их методами и операциями. Для выполнения кодогенерации в среде Delphi необходимо выполнить следующую последовательность действий: - протестировать модель на логические непротиворечия; - настроить (или проверить настройки) среду на законы кодогенерации (соответствие элемента модели Rose элементу кода Delphi); - создать имя проекта Delphi и выполнить кодогенерацию. Этапы выполнения упражнения. 1) Протестируйте модель Tools->Ceck Model. Просмотрите log файл на наличие ошибок. Если файл не виден- выполните команду file->Save Log As и введите имя файла (по умолчанию error.log). Затем его просмотрите и, при необходимости, исправьте ошибки. К наиболее распространенным ошибкам относятся такие, как неотображение сообщений на операции или несоотнесение объектов с классами на диаграммах взаимодействия. С помощью пункта меню Check Model можно выявить большую часть неточностей и ошибок в модели. 2) Пункт меню Access Violations позволяет обнаружить нарушения правил доступа, возникающие тогда, когда существует связь между двумя классами разных пакетов. При этом связи между самими пакетами нет. Например, если существует связь между классами Order пакета Entities и OrderManager пакета Control, то обязательно должна существовать и связь между пакетами Entities и Control. Если последняя связь не установлена, Rose выявит нарушение правил доступа. Чтобы обнаружить нарушение правил доступа: Выберите в меню Report > Show Access Violations. Проанализируйте все нарушения правил доступа. 3) Выполните Tools>Options>Notation>Default Language и из выпадающего списка выберите язык программирования Delphi. 4) Проверьте правильность установок кодогенерации по умолчанию (default). Для этого выполните Tools->Options->Delphi и последовательно переберите из выпадающего списка поля Type все элементы. Сравните установки в поле Model Propities с данными (default) из таблицы Приложения A. В случае несоответствия- исправьте. 5) Выполните Tools> Ensemble Tools>Rose Delphi Link (рис.14) ![]() Рис. 14. Меню для выбора процесса кодогенерации В результате появится соответствующая экранная форма. Выполните на этой форме File>New Proect. Появится форма с браузером. Введите имя файла и место на диске, куда будет сохранено имя сгенерированного проекта в Delphi. Например, NewProect.dpr и нажмите Открыть. В результате форма примет вид (рис. 15) ![]() Рис. 15. Представление результатов кодогенерации в окне Rose Delphi Link 5. Через проводник Windows найдите папку проекта Delphi. С помощью программы Блокнот просмотрите содержимое всех файлов. В приложении B к руководству приведено содержимое всех файлов проекта. Лабораторная работа 12. Анализ Delphi проекта, добавление визуальных объектов, реинжениринг в Rose 1)Запустите на выполнение программу Delphi и загрузите сгенерированный проект (Proect1.dpr). Проверьте, что проект содержит все модули и присмотрите их содержимое через редактор Delphi. 2) Создайте в проекте Delphi новую форму с Name Form1. Поместите на форму компонент MainMenu (главное меню) 3) С помощью Menu Disigner введите две позиции горизонтального меню с названиями (полями Caption) Oder и OderItem. 4) Для Oder введите две строки вертикального меню с Caption Create и SubmitInfo. Для OderItem введите одну строку вертикального меню с названием GetInfo. 5) Сохраните проект в Delphi. Реинжениринг Delphi проекта в модель Rose 1) Вернитесь в проект Rose и откройте окно проектов Rose Delphi Link. Проверьте, что открыт именно тот проект, для которого выполнялась кодогенерация. 2) Курсором мыши нажмите клавишу Update ALL со стрелкой влево (обновление модели Rose на основе изменений проекта Delphi). В результате в моделе Rose должны произойти определенные изменения (рис. 16): ![]() Рис. 16. Окно Rose Delphi Link после кодогенерации - в представление Logic View создался новый пакет Unit1 и External References (Внешние ссылки). Внутри второго пакета созданы три класса TForm, TMainMenu и TMenuItem, которые использовались при развитии проекта Delphi. Отметим, что эта папка не создалась бы, если бы мы при первоначальном создании проекта включили в него пакет классов Delphi FreimWork. - в этом же представлении в пакете Unit1 создан класс TForm1 и Unit1 оба соотнесенные с вновь созданным компонентом Unit1. Кроме того, в этом же пакете создалась диаграмма классов Overview, содержимое которой показано на рис.17 ![]() Рис. 17. Результаты реинжениринга проекта Delphi в Rose (Задание. Опишите интерпретацию рис. 17 с позиции объектно- ориентированного проектирования). Лабораторная работа 13. Кодогенерация модельных элементов из Приложения Б. В приложении Б, с помощью визуального представления, описаны основные законы кодогенерации при установках кодогенерации типа Default. Задание. Создать новый проект в Rational Rose. Для каждого элемента из приложения создать в Rose соответствующую модель классов и выполнить кодогенерацию для нее. |