はじめに
sourcetrailはソースの内部依存関係をグラフ等で可視化できる、オープンソースソフトウェアです。ビジュアルグラフなどを使った分かりやすい表示ができるのが特徴で、もともと商用ソフトウェアとして販売されていましたが、2019年にオープンソース化されました。今回は、sourcetrailの導入や運用方法についてのアドバイス等を説明したいと思います。
レッスン1.sourcetrailでできること
まずは、sourcetrailとは何なのか、何ができるのかを学びましょう。
対応言語:C/C++、Java、Python
対応OS:Windows、Mac、Linux
sourcetrail公式サイトhttps://www.sourcetrail.com/
sourcetrailでできる主な機能は以下です。
- 依存関係グラフ、ツリーの出力
- グラフに相当するコードの表示
- コードから関係するグラフへのジャンプ(Visual Studio Codeとの組み合わせで可能)
実際のソースコードと自在に行き来しながら構造解析を進めることができるので、初めてチームに入るエンジニアの構造学習には最適なツールと言えます。
レッスン2.インストール
ここでは、必要な環境を整えます。まず、sourcetrailの本体を入手し、インストールを進めていきましょう。
下記のサイトにアクセスし、本体を入手します。
https://github.com/CoatiSoftware/Sourcetrail/releases
ページの中ほどに下記のインストーラ一覧があるので、そこからWindows版のインストーラをダウンロードしてください。
ダウンロードしたら、zipを解答しsourcetrail.msiを実行します。
下記のような画面が出たら、「詳細情報」をクリックします。
「実行」ボタンを押します。
インストーラが起動するので、進めていきます。
パスは必要に応じて変更してください。通常はそのままで結構です。
ここはショートカットの作成について選択する画面ですが、初期状態だとStart menuへの追加がオンとなっています。必要に応じて選択してください。通常はそのままStart menuだけで十分です。
あとは、そのまま「Install」を押すと、インストールが開始します。
インストールが完了したら、「Finish」を押してウィンドウを閉じてください。
インストールが完了したので、続いて設定を行っていきます。
今回はC++のサンプルコードを準備しました。下記のコードをコピーして、それぞれヘッダとCソースとして保存してください。
ヘッダ(sample.hとして保存)
namespace sample { class Member { private: int age; public: void registration( int Age ); }; }
ソースコード(main.cppとして保存)
#include "sample.h" #includeusing namespace std; using namespace sample; int main() { Member m; m.registration( 20 ); } void Member::registration(int Age) { age = Age; std::cout << "registered Age:" << age; }
続いて、Visual Studio Code(以下VS Code)を準備します。
VS Codeと連携すると、ソースコードから解析結果に飛べるので、とても効率が良くなります。
VS Codeは事前にインストールができているものとして、プラグインを追加します。プラグインの検索で「sourcetrail」を見つけてインストールしてください。
インストールができたら、sourcetrailの設定画面を開きます。開いたら、下記の赤枠で囲まれた設定を有効にしてください。
設定が終わったら、VS Code上で、先ほどのsample.hとmain.cppを保存したディレクトリを開いておきましょう。
これで準備完了です。
レッスン3.プロジェクトの作成
スタートメニューからsourcetrailを起動します。起動したら、「New Project」を選択します。
続いて、プロジェクト名と実行結果を保存しておくディレクトリを設定します。ソースコードの場所ではないので注意してください。設定が終わったら、左下のボタンを押してソースコードの場所を指定します。
Empty C++ Source Groupを選択します。
赤枠の部分に、sample.hとmain.cppを保存したフォルダをドラッグアンドドロップします。
ドラッグアンドドロップすると、パス名が挿入されます。正しく入ったことを確認します。確認できたら、右下のSaveを押してください。
続いてソースコードの解析を始めますので、startを押します。最初なのでAll filesが自動で選ばれていますが、そのままでOKです。
エラーが出ますが、そのまま使用できますので、気にせずにOKを押して閉じてください。
解析結果が表示されます。見たいカテゴリ名を押すと、ここから詳細を見ることができます。
では、続いてVS Codeに移りましょう。main.cppを開いてください。解析結果を見たい部分を右クリックして、「Sourcetrail:Send Location」を押してみてください。ここではお試しで「registration」というメソッドを選択してみます。
sourcetrailのウィンドウに再び戻ってみてください。解析結果が表示されていることが分かります。図を見てわかるように、registrationというメソッドはmainという関数から呼ばれていて、ageというメンバ変数にアクセスしていることがわかります。
ここで、さらに「main」という部分を押してみましょう。こうすると、main関数から見たクラスへのアクセス状況が分かります。
このように、基本的にはVS Codeでソースコード解析を行い、より詳しい情報を見たい場合にはsourcetrailで確認するといった方法をとると、効率よく解析を行うことができます。
また、一度ファイル構造をプロジェクトに登録しておけば、ファイルが変更になった時には更新を行えばよいだけなので、次回以降はsourcetrail立ち上げてプロジェクトを選ぶだけで使うことができるようになります。
おわりに
sourcetrailは、もともと有償のツールだったこともあり、安定性やインターフェースなど無料とは思えないレベルになっています。今回は、コードがサンプルで小さかったため、結果として見ることができる項目があまり多くありませんが、巨大なコードになると、より真価を発揮することになります。ソースコードの解析ツールは有償のものが多い中、無償で使えるものは気軽に導入することができますので、まずは試してみることをおススメします。
最後までお読みいただきありがとうございました。
No Comments