Как использовать doxygen для создания диаграмм классов UML из источника C++


Я искал какой-то материал, который описывает, как создавать простые диаграммы классов с помощью doxygen, но не смог найти его. Кто-нибудь может помочь?

Мне нужно создать диаграммы, как показано ниже из набора файлов c++.

Если есть лучшие инструменты для достижения этого проще, пожалуйста, дайте мне знать.

5 70

5 ответов:

Doxygen создает диаграммы наследования, но я не думаю, что он создаст всю иерархию класса. Это позволяет использовать инструмент программ. Если вы используете инструмент Doxygen GUI frontend, вы найдете соответствующие параметры в Step2: -> Wizard tab -> Diagrams. Параметры связи точек находятся на вкладке эксперт.

цитата этот пост (это написано самим автором доксигена):

run doxygen -g and change the following options of the generated Doxyfile:

    EXTRACT_ALL            = YES
    HAVE_DOT               = YES
    UML_LOOK               = YES

run doxygen again

Хм, это, кажется, немного старый вопрос, но так как я возился с конфигурацией 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.

Я склонен ненавидеть "РТФМ" стиль ответов, так извините за это предложение, но в этом случае документация Doxygen действительно является вашим другом, поэтому ознакомьтесь с документами Doxygen по вышеупомянутым настройкам - в последний раз, когда я смотрел, вы можете найти подробную информацию по адресу http://www.stack.nl / ~dimitri/doxygen/manual/config.html.

Я думаю, вам нужно будет отредактировать файл doxys и установить GENERATE_UML (что-то вроде этого) в true. И вам нужно установить dot/graphviz.

Enterprise Architect построит диаграмму UML из импортированного исходного кода.