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

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

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

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

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

Цитата из этой публикации (она написана автором доксигена):

 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 установить 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 .

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

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

  • В чем разница между включением и расширением диаграммы использования?
  • Как сгенерировать диаграммы UML (особенно диаграммы последовательности) из кода Java?
  • Создание UML из кода на C ++?
  • Понимание диаграмм
  • Как показать условие «если» на диаграмме последовательности?
  • Невозможно изменить размер формы компонента в MS Visio 2007
  • Давайте будем гением компьютера.