doxygenを使用して簡単なクラス図を生成する方法を説明する資料を探していましたが、見つかりませんでした。誰か助けてもらえますか?
C++ファイルのセットから次のような図を作成する必要があります。
これを簡単に実現するためのより良いツールがあれば、私に知らせてください。
doxygenを使用して簡単なクラス図を生成する方法を説明する資料を探していましたが、見つかりませんでした。誰か助けてもらえますか?
C++ファイルのセットから次のような図を作成する必要があります。
これを簡単に実現するためのより良いツールがあれば、私に知らせてください。
うーん、これは少し古い質問のようですが、私はここ数日Doxygenの構成をいじっていたので、私の頭はまだ最新の情報でいっぱいですが、それを突き刺してみましょう-
私は前の答えがほとんどそれを持っていると思います:
不足しているオプションはCOLLABORATION_GRAPH = YES
、Doxyfileを追加することです。私はあなたがdoxywizardGUIのどこかで同等のことをすることができると思います(私はdoxywizardを使いません)。
したがって、より完全な例として、私がよく使用するUML出力に関連する一般的な「Doxyfile」オプションは次のとおりです。
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.doxygen.nl/manual/config.html。
Doxygenは継承図を作成しますが、クラス全体の階層を作成するとは思いません。GraphVizツールを使用できます。Doxygen GUIフロントエンドツールを使用する場合は、関連するオプションがにありますStep2: -> Wizard tab -> Diagrams
。DOTリレーションオプションは[エキスパート]タブの下にあります。
この投稿からの引用(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
Enterprise Architectは、インポートされたソースコードからUML図を作成します。
doxysファイルを編集し、GENERATE_UML(そのようなもの)をtrueに設定する必要があると思います。そして、dot/graphvizをインストールする必要があります。
最高の2つの賛成の答えは正しいです。今日の時点で、 (デフォルト設定から)変更する必要があるのは、組み込みのジェネレーターの代わりにドットを使用した生成を有効にすることだけでした。
いくつかの重要な注意事項:
html/inherits.html
または(Webサイトのナビゲーションから)クラス=>クラス階層=>「テキストクラス階層に移動」にあります。T
。
foo
がから継承しT
、T
テンプレートタイプパラメータにデフォルトがある場合、そのようなデフォルトが想定されます。デフォルトとは異なる場所bar
から継承するタイプがある場合は、親があります。共通の親はありません。foo<U>
U
bar
foo<U>
foo<>
bar<U>
variant
から継承するインスタンス化が表示されますvariant<Ts...>
。<...>
の名前には、デフォルトがなかったタイプおよび非タイプのパラメーターを表す文字列が含まれます。