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. В такой ситуации приходится повторять реверс-инжиниринг.
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-05-06 » Как настраивать конверсионные стратегии: работа над ошибками
- 2024-04-22 » Комментирование кода и генерация документации в PHP
- 2024-04-22 » SEO в России и на Западе: в чем основные отличия
- 2024-04-22 » SEO для международного масштабирования
- 2024-04-22 » Как использовать XML-карты для продвижения сайта
- 2024-04-22 » Цифровой маркетинг: инструменты для продвижения и рекламы в 2024 году
- 2024-04-22 » Что такое CSS-модули и зачем они нам?
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
Власть над собой — высшая власть. Луций Анней Сенека |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.