Как использовать doxygen для создания диаграмм классов UML из источника С++
Я искал материал, который описывает, как создавать простые диаграммы классов с помощью doxygen, но не смог найти его. Может ли кто-нибудь помочь?
Мне нужно создать диаграммы, как показано ниже, из набора файлов на С++.
![alt text]()
Если у вас есть лучшие инструменты для этого, сообщите мне.
Ответы
Ответ 1
Doxygen создает диаграммы наследования, но я не думаю, что он создаст целую иерархию классов. Это позволяет использовать инструмент GraphViz. Если вы используете инструмент интерфейса Doxygen GUI, вы найдете соответствующие параметры в Step2: -> Wizard tab -> Diagrams
. Параметры отношения DOT находятся под вкладкой Expert.
Ответ 2
Цитата из этого сообщения (она написана автором самого пользователя doxygen):
run doxygen -g and change the following options of the generated Doxyfile:
EXTRACT_ALL = YES
HAVE_DOT = YES
UML_LOOK = YES
run doxygen again
Ответ 3
Хм, похоже, это немного старый вопрос, но поскольку я несколько раз сталкивался с конфигурацией Doxygen, в то время как моя голова все еще заполнена текущей информацией, пусть у нее есть удар -
Я думаю, что предыдущие ответы почти у него:
Недопустимая опция - добавить COLLABORATION_GRAPH = YES
в Doxyfile. Я предполагаю, что вы можете сделать эквивалентную вещь где-то в графическом интерфейсе doxywizard (я не использую doxywizard).
Итак, как более полный пример, типичные опции "Doxyfile", связанные с выходом UML, которые я обычно использую, следующие:
EXTRACT_ALL = YES
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
UML_LOOK = YES
UML_LIMIT_NUM_FIELDS = 50
TEMPLATE_RELATIONS = YES
DOT_GRAPH_MAX_NODES = 100
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = YES
Эти настройки будут генерировать диаграммы "наследование" (CLASS_GRAPH=YES
) и "сотрудничество" (COLLABORATION_GRAPH=YES
).
В зависимости от вашей цели для "развертывания" вывода doxygen настройка DOT_IMAGE_FORMAT = svg
также может быть полезна. С выходом svg диаграммы являются "масштабируемыми" вместо фиксированного разрешения форматов растровых изображений, таких как .png. По-видимому, при просмотре вывода в браузерах, отличных от IE, есть также INTERACTIVE_SVG = YES
, который позволит "интерактивное масштабирование и панорамирование" сгенерированных диаграмм svg. Я попытался это сделать некоторое время назад, и выход svg был очень визуально привлекательным, но в то время поддержка браузера svg была все еще немного непоследовательной, поэтому, надеюсь, эта ситуация, возможно, улучшилась в последнее время.
Как отмечалось в других комментариях, некоторые из этих настроек (DOT_GRAPH_MAX_NODES
в частности) имеют потенциальное влияние на производительность, поэтому YMMV.
Я склонен ненавидеть ответы стиля "RTFM", поэтому приношу извинения за это предложение, но в этом случае документация Doxygen на самом деле является вашим другом, поэтому ознакомьтесь с документами Doxygen по вышеуказанным настройкам - в прошлый раз, когда я посмотрел, вы можете найти детали http://www.stack.nl/~dimitri/doxygen/manual/config.html.
Ответ 4
Думаю, вам нужно будет отредактировать файл doxys и установить GENERATE_UML (что-то в этом роде) в true. И вам нужно установить dot/graphviz.
Ответ 5
Enterprise Architect построит диаграмму UML из импортированного исходного кода.