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

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

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

Если есть более эффективные инструменты для более простого достижения этой цели, сообщите мне об этом.

71 голос | спросил devnull 21 Jam1000000amFri, 21 Jan 2011 09:07:37 +030011 2011, 09:07:37

5 ответов


0

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

ответил DPD 21 Jam1000000amFri, 21 Jan 2011 09:41:24 +030011 2011, 09:41:24
0

Цитата из этой записи (написана самим автором 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
ответил average 6 MarpmWed, 06 Mar 2013 17:18:56 +04002013-03-06T17:18:56+04:0005 2013, 17:18:56
0

Хм, похоже, это старый вопрос, но, так как последние несколько дней я баловался с конфигурацией Doxygen, в то время как моя голова все еще полна текущей информации, давайте попробуем -

Я думаю, что предыдущие ответы почти есть:

Отсутствующий вариант - добавить COLLABORATION_GRAPH = YES в Doxy-файл. Я предполагаю, что вы можете сделать аналогичную вещь где-нибудь в графическом интерфейсе 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) диаграммы.

В зависимости от вашей цели «развертывания» выхода кислорода, настройка 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/ручной /config.html .

ответил user6092647 12 J000000Tuesday16 2016, 10:46:27
0

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

ответил fzhou 21 Jam1000000amFri, 21 Jan 2011 09:28:31 +030011 2011, 09:28:31
0

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

ответил zooropa 30 J000000Wednesday14 2014, 20:07:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132