Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UML.doc
Скачиваний:
7
Добавлен:
16.11.2019
Размер:
8.2 Mб
Скачать

2.8.1.6. Этап пятый: выбор класса, компонента или пакета

При генерации программного кода за один раз можно создать класс, компонент или целый пакет. Программный код генерируется с помощью диаграммы или браузера. При генерации кода из пакета можно выбрать или пакет Логического представления на диаграмме Классов, или пакет представле­ния Компонентов на диаграмме Компонентов. При выборе пакета Логического представления гене­рируются все его классы.

При выборе пакета представления Компонентов генерируются все его компоненты.

Программный код можно генерировать одновременно для нескольких классов, компонентов или пакетов. На диаграмме с помощью клавиши Ctrl выберите классы, компоненты или пакеты, для кото­рых нужно сгенерировать программный код, а затем — соответствующую команду генерации в меню см. ниже.

2.8.1.7. Этап шестой: генерация программного кода

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

2.8.1.8. Результаты генерации

Во время генерации программного кода Rose выбирает информацию из логического и компонентно­го представлений модели. Хотя полностью законченное приложение не может быть создано ни одним инструментом моделирования, Rose генерирует большой объем "скелетного" программного кода.

Генерируются все классы модели. Код включает атрибуты каждого класса, в том числе видимость, тип данных и значе­ние по умолчанию.

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

2.8.1.8.1. Компоненты

Каждый компонент реализуется в виде соответствующего файла с исходным кодом.

После генерации файлов остается сделать два шага. Сначала разработчики обращаются к файлам и кодируют каждую из операций классов. Затем проектируется графический пользовательский интер­фейс.

Rose не является инструментальным средством разработки графического интерфейса, поэтому для создания экранов и форм следует пользоваться средой своего языка программирования.

При генерации программного кода Rose для создания каталогов использует пакетную структуру, определенную в компонентном представлении. По умолчанию корневой каталог, применяемый для генерации программ, — это каталог с файлом приложения Rose. Изменить его можно с помощью свойств генерации для своего языка.

Если компоненты не установлены, то для определения структуры каталогов Rose использует па­кетную структуру логического представления. И в этом случае каталогом по умолчанию является ката­лог Rose, а изменить его можно свойствами генерации программного кода.

2.8.2. Обратное проектирование

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

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

В процессе обратного проектирования Rose собирает сведения о: Классах, Атрибутах, Операциях, Связях, Пакетах, Компонентах. Используя эти сведения, Rose создает или обновляет объектную модель. В зависимости от того, ка­кой язык применяется для обратного проектирования, можно создать новую модель Rose или обно­вить текущую.

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

Если классы первоначально были созданы с помощью Rose и если в их программный код были внесены некоторые изменения, то они в процессе обратного проектирования отражаются в модели. Например, если удалить из программы операцию, то во время обратного проектирования она удалит­ся и из модели. Если добавить атрибут или операцию непосредственно в программный код, то он или она при обратном проектировании добавится в модель.

Rose извлекает из программного кода сведения не только о классах, но и о связях. Если в одном из классов содержится атрибут, типом данных которого является другой класс, то Rose создает связь между двумя классами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]