Обратное проектирование кода C ++ с использованием «Enterprise Architect»

Это снова вопрос типа "как это сделать правильно". Извините, если кто-то раздражен.

Мне нужно понять около 150 TLOC смеси C / C ++. Я импортировал код в UML-Tool "Enterprise Architect" и получил беспорядочную диаграмму. Многие структуры и перечисления имели анонимные имена из-за этих конструкций в стиле Си: typedef struct / enum {...} MyType;

Во втором прогоне я преобразовал его в форму C ++: struct / enum MyType {...}; , но получил кучу несвязанных структур. К сожалению, Enterprise Architect не разрешает typedef. например, никакие отношения между A, B и C не были распознаны:

struct A;
struct B;
typedef A *PtrA;
typedef List<B> BList;
struct C{ PtrA pA; BList lB; };

Благодаря общему соглашению об именах я смог заменить все typedef на исходный тип следующим образом:

struct C{ A pA; B lB; };

Теперь импорт исходного кода в "Enterprise Architect" дал хороший диаграмма со всеми отношениями. Конечно, код не компилируется, и это не то же самое. Все изменения в коде требуют утомительного преобразования, чтобы этот «псевдокод» снова стал понятен EA. Поэтому мои вопросы:

  1. Есть ли возможность научить EA распознавая оригинальные типы?
  2. Распознают ли другие UML-инструменты типы (и создать отношения между ними) более надежный?

Большое спасибо за любой совет! Valentin Heinitz

5
задан Valentin Heinitz 20 December 2010 в 13:15
поделиться