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