Это снова своего рода вопрос "как это сделать правильно".Извините, если кого-то это раздражает.
Мне нужно понять около 150 TLOC смеси C / C ++.Я импортировал код в UML-инструмент «Enterprise Architect» и получил грязную диаграмму.Многие структуры и перечисления имели анонимные имена из-за этих конструкций C-ish: typedef struct/enum {...} MyType;
Во втором запуске я преобразовал его в форму C ++: struct/enum MyType{...};
, но получил несколько несвязанных структур.К сожалению, Enterprise Architect не разрешает определения типов.например, никакие отношения между 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 снова поняла этот «псевдо» код.Поэтому мои вопросы:
- Есть ли возможность научить EA распознавать оригинальные типы?
- Разве другие инструменты UML распознают типы (и создают отношения между ними) более надежными?
Большое спасибо за любые советы!Валентин Хайниц