Java:Eclipseでコールグラフ(1)ispaceプラグインをインストール

2013-12-29

旧ブログ

t f B! P L

GPLライセンスのJavaソースコードを読もうとしたのですがソースコードが複数ファイルに分かれていてなかなか知りたい情報のところにたどりつけません。そこでコールグラフを使って関数の依存関係を図にして知りたい情報を捜すことにしました。

統合開発環境(IDE)にはコールグラフ表示機能があるものがある


Virtual MRIというJavaで書かれたGPLライセンスのソフトのなかのデータの使い方を知りたくてソースコードを読もうとしたのですが、どこに書いてあるのかよくわかりません。

「src」フォルダののなかには「.java」という拡張子のファイルがたくさんあります。

ファイル名が大体関数名になっているようなのですが呼び出し元がわかりません。

知りたいのはその関数の呼び出し元の引数です。

このソフトのソースコードにはコメントがちゃんとついているのですがドイツ語なんです。

関数名を元に「src」フォルダの中身を横断的に検索するしかないかなあ、と思いながらネットサーフィンしているとソースコードを読むための技術というページに出会いました。

関数同士の呼び出し関係を図にしたものを「コールグラフ」といい、さらにそれを図にしてくれるツールがあることを知りました。

前々からそういうのがあったら便利だなあと思っていましたので早速「コールグラフ」で検索してみました。

いろいろツールがでているようですが、統合開発環境(IDE)の機能としてコールグラフが表示できるようなのでIDEを使うことにしました。

まずはNetBeansでやってみます、、、半日格闘しましたが結局できませんでした。

NetBeansでコールグラフを作れるのはC/C++だけのようです。

ということでIDEでのコールグラフの表示は諦めてDoxygen + Graphvizでしようかと思ってネットを見ているとEclipseのプラグインispaceでJavaのコールグラフを作成できることがわかりました。

Eclipceをインストール


Eclipse DownloadsからEclipse Standard 4.3.1のWindows 64bitをダウンロードしました。

ダウンロードされたzipを解凍したらeclipceというフォルダがでてきます。

このフォルダを好きな場所に移動してeclipse.exeのショートカットをメニューにでも作ります。

私はc:\に移動しその中にworkspaceフォルダを作成しました。

Eclipse 4.3 のダウンロード,インストール,設定,日本語化,基本操作

ここに詳しいですがNetBeansと違って使い始めるまでにはいっぱいやることがあります。

Javaを扱うのでまずJDKをインストールしておかないといけません。

Java SE 7u4 のダウンロードとインストールとテスト実行 (javac を動かしてみる)

この通りにします。

jdkへのパスの設定もしないといけないようです。メンドクサ、、、

以下はWindows7 64bitの場合です。

エクスプローラーの「コンピューター」で右クリック→プロパティ。



「システムの詳細設定」→「環境変数」

上のユーザー環境変数の枠の下にある「新規」をクリックしてjdkのパスを設定します。


変数値はjdkのインストールした場所によって変わります。

次に変数PATHの値を設定しますが、「新規」をクリックすると既にある設定が上書きされてしまうので注意が必要です。

すでに変数「PATH」があるときはそれを選択して「編集」クリックします。


;C:\Java\jdk1.7.0_17\binを追加しました。前のパスとはセミコロン;で区切ります。

eclipse.exeを起動するとまず作業フォルダの指定を求められますので先ほど作ったworkspaceフォルダを指定しました。

Javadoc(JAVAのヘルプ)を使いたいのでJREをJDKに変更します。

Window→Preferences→Java→Installed JRE→Search。

先ほど環境変数で「JAVA_HOME」で設定したパスのフォルダを選択します。


jdkのフォルダの方にチェックを変更して「OK」ボタンをクリックします。

行番号表示もします。

Window→Preferences→general→Editors→Text Editor、Show line numbersのチェックをオン。

これでEclipseのインストールは完了です。

まずはEclipceプラグインGEF (Graphical Editing Framework)をインストール


ispaceはGEF (Graphical Editing Framework)を必要としますのでまず先にGEFをインストールします。

ダウンロードからインストールまですべてEclipseのメニューから行います。

Help→Install New Software。


「Work with:」にhttp://download.eclipse.org/tools/gef/updates/releases/を入力して「Add」をクリックします。

するとNameを入れるように促されるのでGEFと入力します。


いっぱいファイルがでてきます。

全部は必要ないかもしれませんがよくわからないのですべてインストールします。

Eclipceプラグインispaceをインストール


JAVAのコールグラフを作成してくれるEclipseプラグインispaceをインストールします。

先ほどのGEFと同様にします。

Help→Install New Software。

「Work with:」にhttp://ispace.stribor.de/updatesite/site.xmlを入力して「Add」をクリックします。

Nameを入れるように促されるのでispaceと入力します。

「OK」をクリックしてしばらくするとde.tud.st.ispaceが下の枠にでてきますのでチェックします。


「Next>」をクリックするとダウンロードが始まります。

さらに「Next>」、Licensesを確認したらFinishです。


unsigned contentという警告が出てきますがまあ信じるしかないですね。

eclipse.iniを設定する


eclipse.exeと同じフォルダにあるeclipse.iniの最終行に-Xss2Mを追加します。

eclipse.exeを再起動します。

これでispaceのインストールは完了です。

既存のソースファイルでEclipseの新規プロジェクトを作る



このソースをEclipseに取り込んでコールグラフを作成したいと思います。

以前のバージョンでは新規プロジェクト作成時に既存のソースフォルダを指定できたようですが、現バージョン(4.3.1)ではできないようです。

File→New→Java Project。

「Project name」に新規プロジェクト名を入力しとりあえずデフォルトのままプロジェクトを作成します。

Package Explorerの新規に作成したプロジェクトフォルダを右クリックしてImportします。


srcフォルダだけImportするのならsrcフォルダを右クリックしてImportします。

今回はsrc以外のライブラリに依存関係があってsrcフォルダだけ取り込むとエラーになったためルートフォルダからImportしました。

Pacakge Explorerが表示されていないときはメニューのWindow→Show View→Pacakge Explorer、ででてきます。

参考にしたサイト


GNU General Public License - Wikipedia
GPLライセンスについての説明。「主な特徴」が書いてあってわかりやすいです。

Virtual MRI
Javaで動くMRIシミュレーター

ソースコードを読むための技術
このページに出会って「コールグラフ」というのが何かを初めて知りました。

NetBeans NetBeans 日本語サイト
Java開発元のオラクルが提供しているIDE。Javaのコールグラフは作れませんでした。

ソースコードを読むのに Doxygen + Graphviz が便利な件 | CUBE SUGAR STORAGE
ispaceを見つけなければこのDoxygen + Graphvizでコールグラフを作ろうと思っていました。

依存関係を可視化
Eclipceプラグインispaceが紹介されていました。

ispace : Ispace - Home browse
Javaのコールグラフを作成してくれるEclipseプラグイン。

Eclipse Downloads
Eclipseダウンロードページ。

Eclipse 4.3 のダウンロード,インストール,設定,日本語化,基本操作
JDKのインストールから日本語化まで詳しく解説されています。

GEF
EclipseプラグインGEF (Graphical Editing Framework)。ispaceの動作に必要です。

Eclipseに既存のソースを追加する方法: 小粋空間
以前のバージョンとやり方が変わったようです。

次の関連記事:Java:Eclipseでコールグラフ(2)ispaceでコールグラフを作成

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ