RRBridge - утилита для реверс-инжиниринга C# проектов в UML

RRBridge предназначен для реверс-инжиниринга C# проектов в UML-модель Rational Rose.

Назначение
RRBridge предназначен для реверс-инжиниринга C# проектов в UML-модель Rational Rose.


Благодарности
Оригинальная идея принадлежит Сергею Стрелкову, реализовавшему макет реверс-инжиниринга проекта C# на скрипте Rational Rose.


Системные требования
RRBridge
поддерживает:
• Microsoft Development Environment 2003 Version 7.1 (тестировался на  версии 7.1.3088)
• Rational Rose 2003 (тестировался на версии Enterprise Edition 8.0.0303.1400)


Использование
1. Открыть Solution c проектом(ами), подлежащими реверс-инжинирингу, в Microsoft Development Environment.

2. Запустить Rose, открыть модель (если собираетесь обновлять)

Внимание! Если Вы хотите открыть файл модели для ее обновления по текущему состоянию кода, то он не должен иметь признак "read only". В противном случае программа выдаст сообщение о невозможности получить ссылку на объект Rose.Application. При этом у Rose съезжает крыша и даже если открыть файл без
признака "read only" или создать новую модель, то получить ссылку на объект Rose.Application снова не удается. Приходится перезапускать Rose.

3. Запустить RRBridge.exe. При этом программа получает ссылки на открытые модель в Rose и solution в Microsoft Development Environment.

Внимание! Если запущены несколько экземпляров Rose или Microsoft Development Environment, то RRBridge получит ссылки на первые по времени запуска экземпляры.

4. Нажать кнопку "Update Rose Model"

5. В зависимости от размера проекта выпить от нескольких глотков до нескольких чашек кофе...


Файл конфигурации
В файле RRBridge.exe.config в элементе с ключом "IgnoreNamespace" через пробел перечисляются пространства имен, игнорируемые при реверс-инжиниринге. 
Рекомендуется заносить в этот перечень все сборки и пространства имен, включенные в проект(ы) через ссылки (References), так как на них не гарантируется корректный реверс-инжиниринг (вплоть до аварийной остановки приложения RRBridge).


Особенности обработки нереализованных элементов модели
При обработке элементов UML-модели, отсутствующих на момент проведения реверс-инжиниринга в коде, в зависимости от выбора пользователя производится или маркировка элементов стереотипом «not implemented», или удаление элементов.

При этом маркировка или удаление производиться только в пакетах модели, для которых есть соответствующие пространства имен в обрабатываемых проектах C#.


Ограничения
Ограничения в основном связаны с неполнотой объектной модели Microsoft Development Environment, которая используется для анализа структуры проектов и кода.

1. У перечислимых типов не определяется базовый тип членов перечисления (Отсутствует необходимое свойство в объекте DTE.CodeEnum).
2. У классов не определяется наличие модификаторов new и sealed (Отсутствуют необходимые свойства в объекте DTE.CodeClass).
3. У переменных классов не определяется наличие модификаторов readonly и volatile (Отсутствуют необходимые свойства в объекте DTE.CodeVariable).
4. У свойств классов не определяется наличие модификаторов sealed и override (Отсутствуют необходимые свойства в объекте DTE.CodeProperty).
5. У методов классов не определяется наличие модификаторов new, sealed, override, extern (Отсутствуют необходимые свойства в объекте DTE.CodeFunction).
6. Все модификаторы доступа, кроме public, protected, private отображаются в модели как "implementation" (Ограничение Rose - другие модификаторы не предусмотрены).
7. Индексеры (indexers) представляются как свойства с именем this (Ограничение объектной модели Microsoft Development Environment, вообще отсутствует специализированный объект для представления индексеров).
8. События (events) представляются как методы с стереотипом "event". Никакие другие параметры получить не удается, их можно внести в модель вручную, и при последующем реверс-инжиниринге ничто перетираться не будет. (Ограничение объектной модели Microsoft Development Environment, вообще отсутствует специализированный объект для представления событий).
9. Не поддерживаются атрибуты C# вообще (Ограничение Rose - непонятно как их представлять в конкретной реализации UML).


Известные проблемы
1. После завершения работы с RRBridge иногда не удается закрыть Rational Rose. То есть Rose игнорирует команду закрытия окна приложения или завершения.
2. Иногда (очень редко) в процессе реверс-инжиниринга генерируются исключения при обращении к объектам Microsoft Development Environment. В такой ситуации приходится повторять реверс-инжиниринг.

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

RRBridge - утилита для реверс-инжиниринга C# проектов в UML | | 2011-02-15 04:36:17 | | Программирование | | RRBridge предназначен для реверс-инжиниринга C# проектов в UML-модель Rational Rose. НазначениеRRBridge предназначен для реверс-инжиниринга C# проектов в UML-модель Rational Rose. | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: