Терри Кватрани - Rational Rose 2000 и UML Визуальное моделирование
Обычно определением параметров генерации кода, которые использует вся команда разработчиков, занимается несколько человек. Это позволяет каждому разработчику получать нужный код компонентов. Типичные наборы параметров могут быть такими: виртуальный деструктор, виртуальная операция, абстрактная операция, статическая операция, функция, не возвращающая данные, опережающее определение.
Для создания наборов параметров в программе Rational Rose:
1. Выберите команду меню Tools => Options (Сервис => Параметры).
2. Выберите вкладку С++.
3. Укажите нужный тип набора параметров в открывающемся списке Туре (Тип).
4. Щелкните по кнопке Clone (Клонировать), чтобы открыть диалоговое окно Clone Property Set (Клонированный набор параметров).
5. Введите название нового набора параметров.
6. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно.
7. В списке параметров щелкните по параметру, который требуется изменить.
8. Щелкните по значению параметра.
9. Введите или выберите из открывающегося списка новое значение параметра.
10. Аналогичным образом измените значения других параметров.
11. Щелкните по кнопке Apply (Применить), чтобы сохранить изменения.
12. Повторите выполненные действия для каждого нового набора параметров.
13. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно Options (Параметры).
Набор параметров виртуальный деструктор (Virtual Destructor) показан на рис. А.1.
Рис. A. 1. Набор параметров виртуальный деструктор
Этап 2. Создание компонентов тела пакета на диаграмме компонентов
Программа Rational Rose генерирует код на основе компонентов и их стереотипов, расположенных на диаграммах. Для компонентов без стереотипов создается h-файл, содержащий определение и декларацию класса. Для компонентов со стереотипом заголовок пакета (Package Specification) создается h-файл, включающий определение класса.
Если существует компонент со стереотипом тело пакета (Package Body), то для него создается файл срр, содержащий декларацию класса.
Последовательность указания стереотипов для компонентов в программе Rational Rose:
1. Дважды щелкните по диаграмме компонентов, чтобы открыть ее.
2. Щелкните правой кнопкой мыши по компоненту на диаграмме.
3. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры).
4. Выберите или введите нужный стереотип в открывающемся списке Stereotype (Стереотип).
5. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно настройки параметров компонента.
Диалоговое окно настройки параметров компонента показано на рис. А.2.
Рис. А.2. Диалоговое окно настройки параметров компонента
Для создания заголовка и тела компонентов в программе Rational Rose:
1. Дважды щелкните по диаграмме компонентов, чтобы открыть ее.
2. Щелкните правой кнопкой мыши по компоненту на диаграмме.
3. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры).
4. Для файла заголовка выберите стереотип Package Specification (Заголовок пакета) в открывающемся списке Stereotype.
5. Для тела компонента выберите стереотип Package Body (Тело пакета) в открывающемся списке Stereotype.
6. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно настройки параметров компонента.
Обновленная диаграмма с компонентами для h- и срр-файлов С++ показана на рис. А.3.
Рис. А.З. Обновленная диаграмма компонентов
Этап 3. Назначение языка С++ компонентам
После создания компонентов для заголовка и тела им необходимо назначить язык С++. Если для модели по умолчанию выбран язык С++ (устанавливается на вкладке Notation (Нотация) диалогового окна настройки параметров, вызываемого командой меню Tools => Options (Сервис => Параметры)), программа Rational Rose автоматически назначит его всем компонентам модели.
Последовательность назначения языка компоненту в программе Rational Rose:
1. Щелкните правой кнопкой мыши по компоненту в списке браузера или по диаграмме.
2. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры).
3. В открывающемся списке Language (Язык) выберите С++.
4. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно настройки параметров компонента.
Параметры компонента для класса предмет (Course) показаны на рис. А.4.
Рис. A.4. Назначение языка компоненту
Этап 4. Связывание классов с компонентами
После создания компонентов устанавливается связь классов с компонентами, представляющими файлы заголовков.
Чтобы связать классы с компонентами в программе Rational Rose:
1. Дважды щелкните по диаграмме компонентов, содержащей компоненты для h- и срр-файлов, чтобы открыть ее.
2. В списке браузера щелкните по классу и перетащите его на компонент, представляющий h-файл.
Этап 5. Привязка наборов параметров к элементам моделирования
Каждый элемент моделирования (класс, атрибут или роль) изучаются на предмет особенностей генерации кода. Если для элемента требуется набор параметров, отличный от используемого по умолчанию, то он привязывается к элементу моделирования.
Привязка набора параметров к выбранному элементу в программе Rational Rose предусматривает выполнение следующих действий:
1. Щелкните правой кнопкой мыши по элементу в списке браузера или по диаграмме.
2. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры).
3. Выберите вкладку С++.
4. В открывающемся списке Set (Набор) укажите нужный набор параметров.
5. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно настройки параметров элемента.
Набор параметров виртуальный деструктор (Virtual Destructor) привязан к классу пользователь (RegistrationUser) — см. рис. А.5.
Рис. А.5. Привязка набора параметров
Поскольку для каждой комбинации элементов нельзя подобрать набор параметров, некоторые из них можно изменить. Это справедливо и в том случае, когда параметр является частью набора, используемого по умолчанию.
Для изменения параметра в программе Rational Rose:
1. Щелкните правой кнопкой мыши по элементу в списке браузера пли по диаграмме.
2. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры).
3. Выберите вкладку С++.
4. В открывающемся списке Set (Набор) укажите нужный набор параметров.
5. В списке параметров щелкните по значению, которое требуется изменить.
6. Введите или выберите из открывающегося списка новое значение параметра.
7. Аналогичным образом измените значения других параметров.
8. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно настройки параметров элемента.
Этап 6. Выбор компонентов и генерация кода
Код может быть сгенерирован для всего пакета, для компонента или набора компонентов. Название компонента используется в качестве имени файла, содержащего полученный код. Файл с кодом помещается в папку, соответствующую названию пакета в представлении компонентов.
Последовательность генерации кода в программе Rational Rose:
1. Выберите пакет, компонент или набор компонентов.
2. Выберите команду меню Tools => С++ => Code Generation (Сервис => С++ Генерация кода).
3. Процесс генерации кода будет отображаться в окне Code Generation Status (Состояние генерации кода).
Окно Code Generation Status показано на рис. А.6.
Рис. A.6. Окно Code Generation Status
Этап 7. Оценка ошибок при генерации кода
Программа Rational Rose выводит все ошибки и предупреждения в окне Log (Журнал). Если проектирование класса частично не завершено, то будут взяты значения по умолчанию, а в журнале появится предупреждение. Это особенно важно при использовании итеративного подхода в разработке, когда класс не реализуется полностью в одной версии.
Приведу примеры предупреждений и ошибок при генерации кода:
□ Error: Missing attribute data type. Void is assumed. (Ошибка: He указан тип данных атрибута. Подразумевается void.);
□ Warning: Unspecified multiplicity/cardinality indicators. One is assumed. (Предупреждение: He задан индикатор множественности. Подразумевается единица.);
□ Warning: Missing operation return type. Void is assumed. (Предупреждение: He указан тип возвращаемого значения для операции. Подразумевается void.).
Окно Log показано на рис. А.7.
Рис. A.7. Окно Log в программе Rational Rose