web-dev-qa-db-ja.com

doxygenを使用してC ++ソースからUMLクラス図を作成する方法

私は、doxygenを使用して簡単なクラス図を生成する方法を説明する資料を探していましたが、見つけられませんでした。誰でも助けることができますか?

C++ファイルのセットから以下に示す図を作成する必要があります。 alt text

これを簡単に達成するためのより良いツールがあれば、教えてください。

75
devnull

Doxygenは継承図を作成しますが、クラス全体の階層を作成するとは思いません。 GraphVizツールを使用できます。 Doxygen GUIフロントエンドツールを使用する場合、関連するオプションはStep2: -> Wizard tab -> Diagrams。 DOT関係オプションは[エキスパート]タブの下にあります。

48
DPD

この投稿 (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
41
average

うーん、これは少し古い質問のように思えますが、ここ数日、Doxygenの設定をいじっていたので、私の頭にはまだ最新の情報がいっぱいです。

以前の答えにはほとんどそれがあると思います:

欠落しているオプションは、Doxyfileに_COLLABORATION_GRAPH = YES_を追加することです。 doxywizard GUIのどこかで同等のことができると思います(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のドキュメントは本当にあなたの友人です。 http://www.doxygen.nl/manual/config.html

32
user6092647

Enterprise Architectは、インポートされたソースコードからUML図を作成します。

4
zooropa

Doxysファイルを編集してGENERATE_UML(そのようなもの)をtrueに設定する必要があると思います。また、dot/graphvizをインストールする必要があります。

4
fzhou