Терри Кватрани - Rational Rose 2000 и UML. Визуальное моделирование стр 26.

Шрифт
Фон

Терри Кватрани - Rational Rose 2000 и UML. Визуальное моделирование

Рис. 12.7. Обновленная диаграмма классов

Проектирование атрибутов и операций

Во время анализа достаточно указать только имена для атрибутов и операций. На этапе проектирования для атрибутов необходимо указать типы данных и начальные значения, а для операций - сигнатуры. Тип данных для атрибута может определяться языком программирования. Это может быть, например, целочисленный (integer) тип либо более сложный - строка (string) из библиотеки классов. Если требуется инициализация атрибута начальным значением при создании объекта класса, то эти сведения также помещаются в класс. В терминах методологии сигнатура операции включает список параметров (parameter list) и возвращаемый класс (return class). Для параметров и возвращаемого класса также должны быть указаны типы данных. Для атрибутов и операций необходимо определить тип доступа: общедоступный (public), защищенный (protected) или скрытый (private). Атрибуты обычно скрыты, тогда как операции могут быть скрытыми или общедоступными. Если класс является частью иерархии наследования, атрибуты и операции могут быть объявлены как защищенные, чтобы к ним получили доступ классы-потомки.

Чтобы установить типы данных и начальных значений атрибутов в программе Rational Rose:

1. Щелкните правой кнопкой мыши по классу в списке браузера или по диаграмме.

2. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры).

3. Выберите вкладку Attributes (Атрибуты).

4. Щелкните по полю ввода начального значения или типа данных для перехода в режим редактирования.

5. Введите нужный тип данных или начальное значение атрибута.

Последовательность определения сигнатур операций в программе Rational Rose:

1. Щелкните правой кнопкой мыши по классу в списке браузера или по диаграмме.

2. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры). Откроется диалоговое окно Class Specification (Параметры класса).

3. Выберите вкладку Operations (Операции).

4. Дважды щелкните по операции, чтобы вызвать диалоговое окно Operation Specification (Параметры операции).

5. Укажите возвращаемый класс на вкладке General (Общие).

6. Выберите вкладку Detail (Детально).

7. Щелкните правой кнопкой мыши по списку Arguments (Аргументы).

8. В появившемся контекстно-зависимом меню выберите команду Insert (Добавить). В список аргументов будет добавлен новый аргумент. Укажите для него имя, тип данных и значение по умолчанию.

9. Щелкните по кнопке OK, чтобы закрыть диалоговое окно Operation Specification.

10. Щелкните по кнопке OK, чтобы закрыть диалоговое окно Class Specification.

11. Чтобы получить сигнатуру операции на диаграмме классов, воспользуйтесь настройкой параметров отображения, выбрав команду меню Tools => Options (Сервис => Параметры).

12. Чтобы вывести сигнатуру операции только для определенных классов, выделите нужные классы и выберите команду меню Format => Show Operation Signature (Формат => Показать сигнатуру операции).

Атрибуты и операции классов можно также указать непосредственно на диаграмме классов, выбрав нужный элемент и воспользовавшись следующим форматом: атрибут: тип = начальное значение

операция (аргумент: тип = значение по умолчанию): возвращаемый класс

Некоторые операции и атрибуты для задачи регистрации учебных курсов показаны на рис. 12.8.

Терри Кватрани - Rational Rose 2000 и UML. Визуальное моделирование

Рис. 12.8. Атрибуты и операции на уровне проектирования

Проектирование наследования

Во время анализа были определены иерархии наследования для ключевых абстракций. На этапе проектирования эти иерархии дорабатываются, чтобы:

повысить степень повторного использования;

добавить классы уровня проектирования;

добавить классы из выбранных библиотек.

Диаграммы, созданные в ходе анализа, просматриваются для выявления общности атрибутов, операций и отношений. Для вновь обнаруженных общих элементов определяются суперклассы. Это уменьшает общий объем кода и способствует тому, что одно и то же свойство не будет проявляться по-разному в различных классах, если оба класса наследуют его из общего суперкласса.

Проектирование и генерация кода

Последний шаг на стадии проектирования версии - добавление методов, необходимых каждому классу С++, например конструкторов, деструкторов, копирующих конструкторов. Их можно добавить вручную, но это достаточно трудоемко. Поэтому средства генерации кода в программе Rational Rose позволяют добавлять методы такого типа.

Программа Rational Rose содержит разные средства для генерации кода. Код формируется на основе информации, полученной из диаграмм, спецификаций и параметров, указанных в свойствах генерации кода для всех элементов каждого типа. Подробное руководство по созданию кода в Rational Rose представлено в приложениях.

Кодирование, тестирование и документирование версии

Один из заключительных шагов в построении версии - реализация содержания методов на выбранном языке программирования. В этом процессе используются диаграммы взаимодействий, потому что они отражают следующую информацию: кто сделал, что сделал - для кого и когда.

Тестирование представляет собой очень важную составляющую интерактивного и инкрементального жизненного цикла. В ходе анализа и проектирования появляются планы и процедуры тестирования. Для этих целей используются прецеденты, так как они описывают то, что система должна выполнять. Версию нужно протестировать на предмет выполнения задач, определенных в прецедентах. Новые версии также объединяются с предыдущими версиями - вас не интересует готовность всей системы, чтобы собрать их вместе. Версия оценивается для того, чтобы выяснить, устраняет ли она связанные с ней риски. Все неустраненные риски (а также вновь появившиеся) присваиваются следующей версии.

Решения, принятые относительно проектирования версий, отражаются в моделях версий. Эта информация используется для получения документации, которая должна составляться итеративным образом. Я обнаружила, что системы, требующие завершения проекта, чтобы приступить к документированию, редко имеют хорошую документацию (очень часто ее нет совсем).

Использование возвратного проектирования для подготовки очередной версии

В ходе реализации текущей версии модель необходимо обновить, чтобы отразить в ней все изменения, выполненные в коде (добавленные методы или новые классы). Вместо обновления вручную можно воспользоваться возвратным проектированием (reverse engineering) программы Rational Rose, позволяющим получить модель на основе реализации. Эта информация может быть добавлена к уже существующей модели. Подробное руководство по средствам возвратного проектирования в программе Rational Rose 2000 представлено в приложениях.

Резюме

План выпуска версий содержит расписания для каждого шага развития системы. Сценарии, созданные в процессе анализа, являются основными входными данными на этой стадии разработки. Сценарии изучаются и сортируются согласно степени риска, важности для заказчика и потребности в первоочередной разработке определенных базовых сценариев.

После выпуска очередной версии риски переоцениваются, и план проекта при необходимости обновляется.

На ранних стадиях жизненного цикла проекта для граничных классов системы создаются пустые классы, после чего они должны быть доработаны. В них нужно внести данные о количестве и расположении окон, а также создать обработчики событий, поступающих от пользователей. Классы обычно добавляются в модель, чтобы была точная информация о том, как реализовать что-либо в системе. Шаблоны позволяют повторно использовать удачные решения в области проектирования и архитектуры. Это способствует созданию более простых в обслуживании систем и повышению производительности труда. Как и другие классы, создаваемые на этом этапе жизненного цикла, классы, составляющие шаблоны, добавляются в модель и на диаграмму классов. На этапе проектирования для отношений должны быть определены следующие параметры: направленность, содержание, уточнение и реализация мощности; для атрибутов - типы данных и начальные значения, для операций - сигнатуры. Диаграммы, полученные в ходе анализа, просматриваются для определения наследования. Операции в иерархии наследования изучаются для выявления полиморфизма. При его обнаружении операция объявляется виртуальной (virtual) или чисто виртуальной (pure virtual).

Последний шаг на стадии проектирования версии - добавление методов, необходимых каждому классу (например, конструкторов, деструкторов или копирующих конструкторов, если выбран язык программирования С++). В программе Rational Rose 2000 предусмотрены средства для формирования кода. Код генерируется на основе информации, полученной из диаграмм, спецификаций и параметров, указанных в свойствах генерации кода для всех элементов каждого типа.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке