Бесплатный инструмент обратного инжиниринга UML для C ++ (.h / .cpp ==> Диаграмма классов) - PullRequest
16 голосов
/ 05 ноября 2011

Какие инструменты доступны для создания UML Класс Диаграммы из набора .h- или .cpp-файлов?

Я ищу что-то, что ...

  • is free
  • работает из коробки на Windows
  • не требует какой-либо конкретной IDE
  • в идеале обеспечивает графический интерфейс

Ответы [ 6 ]

7 голосов
/ 05 ноября 2011

Dia - очень хороший инструмент для рисования с открытым исходным кодом, а cpp2dia создает диаграммы UML из файлов .h / .cpp.

Я использую его под Linux, я не знаю, работает ли он на других платформах.

Для cpp2dia нет графического интерфейса, но его использование в командной строке очень просто.

5 голосов
/ 05 ноября 2011

О Bouml

утверждает, что нашел ошибки в моем коде

в обратном порядке принимается только «истинный» C ++, шаг препроцессора отсутствует, поэтому любое использование макроса в определении класса или определении операции приводит к ошибке.

он не отображает элементы данных, которые имеют пользовательские типы данных, непосредственно как атрибуты

обратное создает отношения, чем больше это возможно, тем атрибут используется, когда тип не является известным классом или не является классом (например, 'int').

не выполнять несколько отдельных обращений, делать одно обращение, указав несколько верхних каталогов для резервирования (каждый указанный каталог рекурсивно просматривается)

Бруно Пагес (автор Bouml)

3 голосов
/ 24 июня 2013

Я разработал инструмент под названием Doxygraph , который может анализировать XML, сгенерированный Doxygen, и превращать его в интерактивную диаграмму классов UML, которую вы можете просматривать в веб-браузере или импортировать в любое программное обеспечение, которое может читать Графвиз "точечных" файлов.

2 голосов
/ 05 ноября 2011

Вы можете попробовать ArgoUML , который бесплатен, имеет приятный графический интерфейс и написан на Java, поэтому его можно безболезненно запускать в любой системе.

Он способен генерировать C ++ из диаграмм UML;однако обратный инжиниринг исходного кода C ++ в данный момент обрабатывается подпроектом .Последний снимок этого инструмента можно загрузить из репозитория .Тем не менее, этот инструмент все еще находится в разработке, поэтому он может работать не так, как вы ожидаете.

2 голосов
/ 05 ноября 2011

Я не пробовал этого, но Umbrello кажется подходящим кандидатом: http://uml.sourceforge.net/ Он построен поверх библиотек KDE, поэтому он должен работать на Linux / Windows / Mac.

1 голос
/ 31 марта 2014

Я реализовал модуль для StarUML, который обеспечивает инкрементальное обратное проектирование C ++Он также обеспечивает поддержку стандартных контейнеров.Он все еще находится в стадии разработки, но вы можете попробовать.http://starumlcmodule.sourceforge.net.

...