Руководство по инструменту: Обратный инжиниринг кода с помощью Rational Rose
В этой памятке по инструменту описывается возможность Rational Rose выполнять обратный инжиниринг различных типов элементов в модель Rose.
Инструмент: Rational Rose
Взаимосвязи
Основное описание

Обзор

В этой памятке по инструменту описывается возможность Rational Rose выполнять обратный инжиниринг различных типов элементов в модель Rose, включая такие разнообразные элементы, как исходный код и двоичный код, библиотеки типов, Web-элементы,   XML DTD и схемы баз данных.

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

Следующие встраиваемые модули Rational Rose содержат функции обратного инжиниринга:

Visual C++

Rational Rose Visual C++ позволяет выполнять обратный инжиниринг исходного кода Visual C++. Он содержит следующие функции: 

  • Полный обратный инжиниринг общих конструкций языка Visual C++, таких как взаимосвязи, определения типов, перечисления, схемы сообщение/объект/COM, конструкторов и деструкторов 
  • Поддержка с помощью диалоговых окон обратного инжиниринга кода для элементов Visual C++
  • Режим автоматической синхронизации для автоматического обновления кода или модели при их изменении.
  • Интеграция с Microsoft Visual Studio, включая файлы IDL
  • Поддержка классов шаблонов Visual C++ и пользовательских шаблонов кода

 Visual Basic

Тесно интегрированный со средой Microsoft Visual Basic 6.0, встраиваемый модуль Rational Rose Visual Basic Language Support позволяет обновлять и в последующем разрабатывать модель Rose из изменений исходного кода Visual Basic. Расширяемые и настраиваемые инструменты на базе диалоговых окон помогают вам в выполнении обновления модели при изменении исходного кода.

К этим функциям относятся:

  • Обновление элементов модели из изменений в соответствующих проектах исходного кода.
  • Режим синхронизации для обновления элементов модели при удалении исходного кода.
  • Импорт библиотек типов в модель 
  • Возможность автоматизации и расширения циклического инжиниринга с помощью расширяемости Rose Visual Studio RTE

Импортер библиотеки типов

Импортер библиотеки типов в Rational Rose позволяет импортировать библиотеку типов из компонента COM (файлов .dll, .exe, .ocx, .olb и .tlb) в модель Rose. Библиотека типов представлена в виде компонента и в виде логического пакета в модели. Логический пакет содержит элементы библиотеки типов, заданные информацией типа импортируемого компонента COM, такого как интерфейсы, со-классы и т.д. Каждый элемент представлен классом.

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

  • Диалоговое поддержка управления импортером библиотек типов
  • Режим быстрого импортирования для импорта заменителей классов и режим полного импорта для импорта классов со всеми операциями и свойствами
  • Представление библиотек типов в обозревателе объектов или в программе просмотра OLE/COM в Visual Studio
  • Возможность расширения и настройки импорта библиотеки типов с помощью запуска импортера библиотеки типов из сценария или программы с помощью расширяемости Rose Visual Studio RTE

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

 ANSI C++

Встраиваемый модуль Rational Rose ANSI C++ позволяет выполнить обратный инжиниринг исходного кода в модель Rose. ANSI C++ поддерживает обратный инжиниринг в пустую модель, в которой создаются новые элементы модели, и обратный инжиниринг в существующую модель, в которой элементы модели изменяются согласно коду. Он поддерживает: 

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

Rose J (Java)

Rational Rose J позволяет выполнять обратный инжиниринг существующих элементов Java в модель Rose. К этим элементам относятся:

  • Исходные файлы (файлы .java)
  • Файлы байт-кода (файлы .class)
  • Файлы архивов Java (файлы .zip, .cab, .jar и .war)
  • EJB Java
  • Сервлеты Java

Rational Rose J также поддерживает интеграцию с IBM's VisualAge for Java.

CORBA 

Rational Rose CORBA позволяет выполнять обратный инжиниринг совместимого с CORBA кода IDL в модели Rose. Все файлы .idl с выполненным обратным инжинирингом становятся компонентами и помещаются в представление компонента модели.

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

 XML DTD

Rational Rose XML DTD (определение типа документа eXtensible Markup Language) выполняет прямой инжиниринг XML DTD (файла .dtd) для создания диаграммы классов Rose, отображающей структуру, элементы и взаимоотношения в DTD. Можно добавить и удалить элементы XML DTD и изменить взаимоотношения между элементами на диаграмме классов, созданной процессом обратного инжиниринга. Воспользовавшись программой проверки синтаксиса Rose XML DTD для проверки XML можно создавать новый DTD из диаграммы класса Rose.

Rational Rose XML DTD предоставляет стереотипные классы, которые можно использовать для моделирования и создания XML DTD.

Web-проектировщик

Rational Rose Web Modeler обрабатывает файлы Active Server Page (ASP), Java Server Page (JSP) и HTML в Web-приложении, создавая модель web-приложения с помощью классов стереотипов, представляющих клиентские страницы, серверные страницы и формы HTML. Можно изменить модель Web-приложения создать файлы .asp, .jsp, .html и .htm с помощью Web Modeler.

Проектировщик данных

Rational Rose Data Modeler позволяют проектировщику баз данных и разработчику ПО передавать требования с помощью одного инструмента. Будучи проектировщиком или разработчиком баз данных, с помощью Rose Data Modeler можно смоделировать или спроектировать базу данных с помощью обратного инжиниринга существующей схемы базы данных или сценария DDL.

С помощью мастера обратного инжиниринга проектировщика данных Rational Rose можно создать сценарий DDL или схему базы данных для стандартной базы данных ANSI  SQL 92 или следующих DBMS:

  • DB2 DBMS версий MVS и UDB
  • Oracle DBMS 
  • SQL Server DBMS 
  • Sybase Adaptive Server 

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

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