Генерация исходных текстов программ
Для демонстрационных целей достаточно спроектировать только один класс. Назовем его String. В его обязанности должны входить основные операции над массивами (печать, копирование, сравнение, получение размера). В качестве примера опишем сначала данный класс на C++: Class String Protected: Char *TmpString; Public: Int Counter; Теперь средствами Rose все спроектируем в графическом виде. Каждый атрибут задается отдельно, с комментарием, и расписывается тип (public, protected, private). На рис. 15.1 показан разворот спецификации для TmpString. Подобным образом расписываются все переменные.
Рис 15.1. Разворот спецификации для TmpString В плане описания функций все аналогично, только помимо описания самой функции (тип возвращаемого значения) необходимо расписать специфику каждого входного параметра, снабдив все это подробнейшими комментариями. Во всех продуктах компании Rational принято давать комментарии для любой малозаметной операции, поскольку впоследствии, при генерации отчетов не нужно будет еще раз вручную доводить документ, чтобы показать его руководству или передать разработчику в качестве технического задания. Результатом выполнения вышеописанных действий будет появление класса с расписанными спецификациями. Сам класс показан на рис. 15.2. Можно отметить, что в графическом виде можно оценить основные свойства каждого элемента.
Следующий шаг в работе - получение кода на C++. Rational Rose 98 в принципе не может дать готового кода, она способна лишь спроектировать класс и расписать спецификацию каждого элемента, подставить шаблоны членов класса для дальнейшего заполнения кодом. Для 100 %-ной генерации рабочего кода на C++ используется Rational Rose RealTime, которая в данном случае не рассматривается. Рассмотрим кодогенерация (точнее сказать, классогенерацию). Через систему меню выбираем поддерживаемый язык для описания спроектированного класса (в данном случае это C++), вызываем Code Generational. Результатом работы будет появление двух файлов:MyString и MyString. В первом расписывается сам класс, а второй является шаблоном для дальнейшего заполнения соответствующим кодом. Имея подобный шаблон, становится не важно, какой именно разработчик начал создавать кодирование логики класса.Для получения же подробного отчета по классу или технического задания можно воспользоваться инструментом Rational SoDA. Следующая задача, с которой поможет справиться RationalRose - анализ существующей системы. Зачем переписывать и документировать крупные системы заново, если можно воспользоваться функцией обратного проектирования, что позволит из имеющегося кода построить визуальную модель и уже визуально дописать необходимые свойства и атрибуты, дописать новые классы. А под конец сгенерировать весь спектр файлов, необходимых для дальнейшей работы программистов. Данный подход называется Round Trip и полностью поддерживается в RationalRose.
|


