Как использовать doxygen для создания диаграмм классов UML из источника C++
Я искал какой-то материал, который описывает, как создавать простые диаграммы классов с помощью doxygen, но не смог найти его. Кто-нибудь может помочь?
Мне нужно создать диаграммы, как показано ниже из набора файлов c++.
Если есть лучшие инструменты для достижения этого проще, пожалуйста, дайте мне знать.
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.