Как использовать 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 из импортированного исходного кода.