プログラム理解のための凝集度に基づくコード片の分類手法

木下 正喬 (0951038)


ソフトウェアの保守や拡張では,開発者がソースコードを理解するために多くの 時間とコストが費やされる.そのため,ソースコードを効率的に理解するための理 解支援手法が求められている.ソースコードを理解するための手順の中でも,機能 とそれを実現するソースコード領域の対応付けは高コストである.これまでに,こ の操作を支援可能な様々な手法が提案されてきた.しかし,これらの手法の多くは ソースコードについての事前知識や手動の操作を必要とし,未知のソースコードに 適用することは難しい.この問題を解決するため,本研究では“凝集度”を用いて 機能と対応するソースコード領域を特定する手法を提案する.凝集度は,クラスや メソッドなどのモジュールを評価する指標の一つで,モジュール内のデータと処理 がどの程度協調しているかを表す.例えば,モジュールが全体で一つの機能を実現 していれば凝集度は高い値を,関連の無い複数の機能を実現してれば凝集度は低い 値をとる.提案手法では,ソースコードから凝集度が高くなるような領域を自動探 索により求める.凝集度の性質から,これらの領域は機能と一対一で対応している 可能性が高いと考えられる.提案手法の適用実験を行ったところ,ソースコードの 作成者が手作業で定義した機能とソースコード領域の対応関係と近いものを特定す ることができた.