高機能で安全なサービスを提供してくれるソフトウェアは、ユーザーにとってはとてもありがたい存在です。しかし、そうしたソフトウェアの開発は複雑になりがちで、ソースコード量も増加する傾向があります。大規模な開発で重要な「関数や変数がどのように関係しているか」といった、ソースコード内の依存関係をわかりやすいグラフで可視化してくれる無料のオープンソースソフトウェアが「Sourcetrail」です。

Sourcetrail - The open-source cross-platform source explorer

https://www.sourcetrail.com/

現代のソフトウェアは高機能化の一途をたどっているため、開発者の扱うコードは大幅に増加しています。こうした流れから、機能ごとにサービスを分割し、サービス単位での管理を簡素化できる「マイクロサービスアーキテクチャ」が台頭していますが、多機能な単一のサービスで構成された「モノリス」なシステムも存在します。

開発者の扱うコードの量や複雑さはここ10年で100倍以上に増えている - GIGAZINE



複雑なソースコードは、ただ読むだけでは全体の関係を理解するのは困難です。Sourcetrailを使うと、C、C++、Java、Pythonで書かれたコードの関数や変数などの依存関係をグラフで可視化することが可能。Sourcetrailはもともと開発元のCoati Softwareが商用ライセンスとして提供していましたが、2019年にオープンソース化されました。

ソースコード検索エンジン「Sourcetrail」OSS化、GitHub上で公開:CodeZine(コードジン)

https://codezine.jp/article/detail/11826



Sourcetrailの使用感は、以下の公式ムービーを見るとよくわかります。

Sourcetrail - Introduction - YouTube

まずはSourcetrailを起動し、プロジェクトを読み込みます。



ソースコードのインデックス処理が行われます。なお、コードベースが大きいとインデックス作成に時間を要することもあるようです。



インデックス作成が終わると、表示するオブジェクトのカテゴリが表示されました。



例えば「Functions」カテゴリでは、関数の依存関係が可視化されます。



左上の検索窓にキーワードを入力すれば、オブジェクトを検索することが可能。



関数はオレンジ色、変数は青色、クラスは灰色で表示されます。



クラスの関係も一目でわかるように可視化してくれます。



SourcetrailはVisual Studio Code用のプラグインが用意されており、Visual Studio Code上で選択した関数やクラスをSourcetrailで表示することができるようになります。

sourcetrail - Visual Studio Marketplace

https://marketplace.visualstudio.com/items?itemName=astallinger.sourcetrail



ソースコード可視化ツールは他にもUnderstandやSysClinicなどが存在します。しかし、いずれも有償であるため、無料で利用できる手軽さがSourcetrailの強みのひとつとなっています。