無料&手軽にソースコードを可視化できる「Sourcetrail」、大規模開発やレガシーコードの理解に役立ちそう

高機能で安全なサービスを提供してくれるソフトウェアは、ユーザーにとってはとてもありがたい存在です。しかし、そうしたソフトウェアの開発は複雑になりがちで、ソースコード量も増加する傾向があります。大規模な開発で重要な「関数や変数がどのように関係しているか」といった、ソースコード内の依存関係をわかりやすいグラフで可視化してくれる無料のオープンソースソフトウェアが「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の強みのひとつとなっています。
・関連記事
「AMDのRadeon用ドライバー」はLinuxカーネル全体の1割を占めていることが判明 - GIGAZINE
2万7000行ものコードをひとつのファイルに書いたLinuxカーネルパッチが送りつけられる - GIGAZINE
Googleは10億個のファイル・20億行のコード・合計86TBでできている - GIGAZINE
無料で241種類ものPCゲームのソースコードを見ることができる「Game Source Code Collection」 - GIGAZINE
MicrosoftがMS-DOSとWordのソースコードを一般公開、サイズはなんと300KB未満 - GIGAZINE
オープンソースのパフォーマンス可視化ツール「FlameScope」をNetflixが公開 - GIGAZINE
・関連コンテンツ