web-dev-qa-db-ja.com

Graphviz + DoxygenによるUMLクラス図の生成

使用したいGraphviz+DoxygenC++コードに基づいてクラス図を生成します。 DoxygenにはネイティブDOTサポートが付属しているため、これはすでに機能しています。ただし、対応するアクセス修飾子(public、privateなど)、クラスの戻り値およびパラメータータイプを使用して、UMLのような出力を生成することは可能です下の図に似た方法?

私はスレッドを知っています doxygenを使用してC++ソースからUMLクラス図を作成する方法 ですが、質問には答えません。

enter image description here

44
Eric

次のソースファイルを作成しますexample.cpp

class Animal
{
  public:
    void die();
    string name;
    int age;
};

class Dog : public Animal
{
  public:
    void bark();
};

class Cat : public Animal
{
  public:
    void meow();
};

実行doxygen -gおよび生成されたDoxyfileの以下のオプションを変更します。

EXTRACT_ALL            = YES
HAVE_DOT               = YES
UML_LOOK               = YES

doxygenを実行し、Animalクラスの出力を確認します。doxygenはメソッドとフィールドの戻り値の型を表示しませんが、上記の図と同様になります。

57
doxygen

私は同様の問題を抱えていましたが、今ではうまく解決しました。

手順は次のとおりです(Doxygen-DoxywizardのGUIバージョンを使用していると仮定)

  1. エキスパートボタンをクリックします

  2. [ドット]タブに移動し、DOT_PATHを選択します。プログラムをインストールしたフォルダーを参照します。例: "C:/ Program Files(x86)/Graphviz2.32/bin"

それが役立つことを願って、アニット

18
Ani

Doxygraph

Doxygraphは、プロジェクトのソースコードからUMLクラス図のリバースエンジニアリングを自動化し、それらをインタラクティブなWebアプリとして提示するツールのコレクションです。

Doxygenに依存してソースコードを解析し、収集した情報の中間XML表現を作成します。したがって、Doxygenがサポートするすべてのプログラミング言語(C、C++、C#、Objective C、Java、Python、PHP、Tcl、 D、IDL、VHDL、およびFortran。

複製されたプロジェクトからREADMEを読む必要があります。

4
Lucien

あなたの結果を達成するための可能な解決策は、 plantuml を使用することですが、それはドキュメントでより多くの作業が必要です。

2
kikeenrique