Sourcetrailを試してみました
どもです。
つい最近、ソースコードの解析に役に立ちそうなツールを見つけたので、ここで少し紹介をします。
1.何を見つけた?
見つけたのは、Sourcetrailというツールです。
これは、ソースコード内の関数の呼び出し関係やクラスの継承関係を可視化するツールです。
似たようなツールでは、「understand」というツールが有名ですが、これは有償なうえ高価です。
調べてみた範囲ですが、趣味でソフトの開発を行っている個人で払える、払うのは現実的ではないと考えてしまう価格です。
しかし、このSourcetrailは、オープンソースで似たような機能が提供されています。
2.インストールとかとか
Sourcetrailは、GitHubからインストーラをダウンロードできます。
Windowsでは、インストール版とポータブル版があります。
機能的には、どちらも違いは無いようです。
インストールするか、それともUSBメモリに実行ファイルを格納してどのPCでも実行できるようにするか、の違いしか無いようです。
なお、私は「インストール版」を選択しました。
インストール手順については、ここでは割愛します。
インストーラをダウンロードして、実行して、インストール場所指定して…という極々「フツー」の手順で完了します。
3.試しに使ってみた
インストールが終わったので、試しに使ってみました。
3.1.試してみたプロジェクトは?
Sourcetrailを試すにあたり、過去に自分が作ったプロジェクトの中から、「CStubMk」を選びました。
理由は、以下です。
- C++で書かれている(っていうか、書いた)
- 少し大きい
今回対象としているソースコードは、GitHubで公開しています。
3.2.試した結果
この画面から、解析結果を表示したい内容を選択します。
今回は関数についての解析結果を確認するために、「Function」を選択してみます。
結果として、以下のような画面で、関数の一覧が表示されます。
表示されるのは、グローバル関数のみの模様です。
クラスのメンバ関数は、こちらには表示されない様です。
mainを選択してみます。
ここで初めて、どのクラスを参照しているか、どのメンバ関数を呼び出しているかを可視化できました。
更に、各関数が参照している、呼び出している他の関数を調べてみます。
図に示す順番で、ボタンを押します。
解析の深さを「5」に設定しているため、全ての呼び出しを解析できているわけではありませんが、呼び出し関係が可視化できています。
なお、試しに深さを「inf」に設定してみると、より大きい図になります。
ココでは示しませんので、気になる場合はお試しあれ。
4.結論
ソース解析ということだけ見れば、「understand」に劣らない、十分な機能を備えているかと思います。
しかし、解析できる言語がC/C++/Java/Pythonと限定されています。
今後、別の言語に対応することを期待、といったところでしょうか。
ディスカッション
コメント一覧
まだ、コメントがありません