ソースコードの可視化ツールSourcetrailを使ってみました。
大きくて難解なコードを調査や修正しているとき、気づけば同じコードをグルグル回っていて読み解くのに時間がかかったりします。また、不具合が発生したとき何日もかけてコードを読んで修正するコードは一行だったりもします。ソフト開発はコードを読むことが多いのです。
そういった複雑なコードの理解が早くなり容易になれば開発も速度があがり不具合の混入も減るでしょう。
Sourcetrailはこのコードを読むことを支援してくれるツールです。
今回は、以下の環境でSourcetrailを使ってグラフ化するまでの使い方をまとめます
OS:Windows10
IDE:Visual Studio 2019
解析したソース:Cinder
https://github.com/cinder/Cinder
※Sourcetrailのチュートリアルで使われていたので、Cinderを使って試してみました。
こちらがチュートリアルです。
Sourcetrail - Documentation
結果
手順の前にどんな結果になるか先に書いてしておきます。コードの解析が完了すると、クラスが可視化され、継承関係や依存関係がグラフ化されて見えるようになります。また、グラフと一緒にソースコードも見えて関数などを選択するとコードもその関数に移動します。グラフとコードが同時に見えてリンクしているのはわかりやすいです。
特定の関数を押すとそれを使っている関数や関係しているメンバ変数が可視化されます。
手順
1. VIsual Studioのプラグイン
いったんSourcetrail は置いておいて、Visual Studioに必要なプラグインをインストールします。Visual Studioのメニューから「拡張機能→拡張機能の管理」の順に選択します。そこで、「Sourcetrail Extension」を探してインストールしましょう。
インストールが終わり、再起動すると「Sourcetrail」で必要なデータベースを作成する機能が追加されます。
メニューに追加されているので、解析するソースコードのslnファイルを開き、「Create Compilation Database」を押下してDatabaseを作成しましょう。JSONファイルが作成されます。
2. ダウンロード
Sourcetrailをダウンロードしましょう。
サイトの右上にDownLoadのボタンがあります。クリックするとGitHubのReleaseのページに遷移します。
そのときの最新のReleaseから開発環境にあうインストーラーをダウンロードします。
僕の場合は、「Sourcetrail_2019_4_61_Windows_64bit_Installer.zip」です。
4. 解析
インストールが終わった後は起動しましょう。
左下の「New Project」からプロジェクトを作成します。
プロジェクトを作成します。
任意のプロジェクト名と、ソースコードがあるパスを指定します。
入力後は「Add Source Group」を選択します。
今回はVisual Studioを使うので「C/C++ from Visual Studio」を選択します。
「Next」ボタンを押下します。
Compilation Databaseの項目に「手順1」で「Visual Studio」をつかって作成したDatabaseのJSONファイルを設定しましょう。
「HEADER FIILE & ・・・」の項目に自動でヘッダーが入りますが、今回解析したいIncludeに設定しなおしました(チュートリアルでそうしていたのですが、理由はわかってません。。。)。
Cinderの解析であれば「Cinder\include\cinder」だけが指定された状態にします。
設定が完了すれば「Create」を押してください。
解析が始まります。
解析が完了すればOKです。
完了後、overviewの画面が表示されます。
まとめ
・ソースコードからグラフ化された結果が見れるのは衝撃
・見れるだけでなく、コードと紐づいていたり、関数やメンバ変数を操作することで詳細を見れる
・大きなコードであればあるほど効果を発揮しそう