UML бесплатный инструмент для обратного проектирования для С++ (.h/.cpp ==> Class Diagram)
Какие инструменты доступны для создания диаграмм классов UML из набора .h- или .cpp файлов?
Я ищу что-то, что...
- является бесплатным
- не работает в Windows
- не требует какой-либо конкретной IDE
- идеально предоставляет графический интерфейс
Ответы
Ответ 1
Dia - очень хороший инструмент для рисования с открытым исходным кодом, и cpp2dia создает UML-диаграммы из файлов .h/.cpp.
Я использую его под Linux, я не знаю, работает ли он на других платформах.
Нет графического интерфейса для cpp2dia, но его использование в командной строке очень просто.
Ответ 2
О Bouml
он утверждает, что обнаружил ошибки в моем коде
обратное принимает только "истинный" С++, нет препроцессорного шага, поэтому любое использование макроса в определении класса или определении операции вызывает ошибку.
он не отображает элементы данных, которые имеют пользовательские типы данных, непосредственно как атрибуты
обратное создает отношения, тем больше это возможно, атрибут используется, когда тип не является известным классом или не является классом (например, "int" ).
не выполняйте несколько разделенных разворотов, сделайте одно обратное, указав несколько верхних каталогов для резервирования (каждый указанный каталог проходит рекурсивно)
Бруно Паес (автор Bouml)
Ответ 3
Я разработал инструмент под названием Doxygraph, который может анализировать XML, созданный Doxygen, и превращать его в интерактивную диаграмму классов UML, которая вы можете просматривать в веб-браузере или импортировать в любое программное обеспечение, которое может читать "dot" файлы Graphviz.
Ответ 4
Я не пробовал это, но Umbrello кажется жизнеспособным кандидатом: http://uml.sourceforge.net/ Он построен поверх библиотек KDE, поэтому он должен работать на Linux/Windows/Mac.
Ответ 5
Вы можете попробовать ArgoUML, который является бесплатным, имеет приятный графический интерфейс и написан на Java, поэтому можно работать безболезненно в любой системе.
Он способен генерировать С++ из диаграмм UML; однако обратное проектирование исходного кода С++ обрабатывается подкастом на данный момент. Последний снимок этого инструмента можно загрузить из исходного репозитория. Тем не менее, этот инструмент все еще находится в разработке, поэтому он может работать не так, как вы ожидали.
Ответ 6
Я реализовал модуль для StarUML, который обеспечивает инкрементную обратную разработку С++. Он также поддерживает контейнеры std. Он все еще находится в разработке, но вы можете попробовать.
http://starumlcmodule.sourceforge.net.