[学士論文] 構文木探索時のイベント列に基づく汎用コーディングルールチェック手法

小林研B4の高野さんが学士論文の発表を行いました.

論文題目:構文木探索時のイベント列に基づく汎用コーディングルールチェック手法
論文概要:

ソフトウェア開発において開発や保守の時間やコストを減らすためにソフトウェアの質を良い状態に保つことは重要であり、ソフトウェアの質を保つための1つの手法としてコーディングルールの自動検査。広く用いられている静的解析に基づく方法ではプログラム依存グラフを探索する場合は、ルールごとに特化した探索方法を採用し複雑な実装を行う必要がある。 本研究では、このプログラム依存グラフの探索を単純化して記述することを目的とし,抽象構文木の走査の際に節を通過したことを示すイベントを対象としてコーディングルールの記述と検査を行う手法を提案する.提案手法では,プログラムを抽象構文木を左深さ優先探索した際のノード到達イベント列として扱い,コーディングルールをイベントの出現パターンとして記述する. 各イベントは構文要素の情報だけでなくプログラム依存グラフにおける依存関係を保持しその関係性を用いた記述も可能とする.また,記述したルールから状態機械を構成し、イベント列を入力列として状態機械を動作させパターンに該当する箇所を検出する。 また,提案手法を実現するツールとして,Java コードからイベント列を生成するツールと、イベント列とルール記述からコーディングルールチェックを行うツールを実装し,4 つの実際のコーディングルールを記述する実験を行うことで手法の実現可能性を示した.また,提案手法が簡潔にルールを記述することでき、ソースコードからルールに該当する箇所を検出できることを示した。