Help us understand the problem. What is going on with this article?

MacでDoxygenとGraphvizを使ってクラス図を出力する

More than 5 years have passed since last update.

概要

大規模なプロジェクトになるとソースコードの全貌を視覚的に把握したくなることがあるかと思います。
そこでDoxygenというドキュメント生成ツールと、描画ツールであるGraphvizを用いてクラス図を作成する方法を紹介します。

環境

$ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.9.5
BuildVersion:   13F34

インストール

Homebrewから簡単にインストールできますが、各OSごとに用意されているインストーラを用いてもインストールできます。

$ brew install doxygen
$ brew install graphviz

インストーラはこちら。
Doxygen: http://www.stack.nl/~dimitri/doxygen/download.html
Graphviz: http://www.graphviz.org/Download.php

使い方

まず目的のソースコードのあるルートディレクトリに設定ファイルを出力します。

$ doxygen -g

Configuration file `Doxyfile' created.

Now edit the configuration file and enter

  doxygen Doxyfile

to generate the documentation for your project

$ doxygen -g my_libraryのようにして名前をつけることも可。

設定ファイル内には様々なオプションがありますが、変える必要のあるオプションはそれほど多くないと思います。デフォルトでOFFになっているもののONにした方がよいと考えられる主なオプションは以下の通りです。

option default description
PROJECT_NAME "My Project" クラス図を作成したいプロジェクトの名前
EXTRACT_PRIVATE NO privateなメンバ変数・メンバ関数も出力する
EXTRACT_STATIC NO staticなメンバ変数・メンバ関数も出力する
EXTRACT_ANON_NSPACES NO 匿名の名前空間についても出力する
RECURSIVE NO ソースコードを再帰的に検索する
HAVE_DOT NO YESに設定するとgraphvizなどの描画ツールを使用してクラス図を出力する
DOT_NUM_THREAD 0 スレッド数
CALL_GRAPH NO 関数やメソッドを呼び出す側の依存関係を描画する
CALLER_GRAPH NO 関数やメソッドを呼び出される側の依存関係を描画する

オプションの設定後、

$ doxygen

と入力すると、設定ファイルのあるディレクトリにソースの解析結果の入ったhtmlというサブディレクトリが作成されます。html/index.htmlをブラウザにドラッグアンドドロップすると以下のように解析結果が表示されます。

screenshot_doxygen.png

ysk24ok
今後Qiitaに記事を更新することはありません。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした