コードクローンに基づくソフトウェア信頼性の分析

左藤 裕紀 (0751055)


本論文では,ソースコード中の重複コード列であるコードクローンがソフトウェアの信頼性に与える影響を明らかにすることを目的として,信頼性の一尺度であるバグ密度とコードクローンの関係を定量的に分析した.分析では,まずコードクローンの性質を表すメトリクス(クローンメトリクス)として,コードクローンの長さ,広がり,複雑度に着目した.そして,各クローンメトリクスに基づいてファイルを分類し,それぞれのファイル群の信頼性(バグ密度)を求めた.実験では,代表的なオープンソースソフトウェアであるEclipseのソースコードを題材とした.分析の結果,得られた知見は次の通りである.(1) 長いコードクローンを含んでいるファイル群のバグ密度は低い.(2) 多数のファイルに存在する跨ってクローンを含むファイル群のバグ密度は高い.(3) コードクローン自体の複雑度はバグ密度と関連がない.さらに, 各ソースコードファイルの規模に応じて,ファイルを分類し,上記と同じ手順で信頼性とコードクローンの関係を分析した.その結果,特にバグ密度が高く注意すべきファイル群は,長いコードクローンを含む規模が小さいファイル群と少数のファイル群にのみ存在するコードクローンを含む規模が大きいファイル群の二つであることがわかった.本論文では,ソースコード中の重複コード列であるコードクローンがソフトウェアの信頼性に与える影響を明らかにすることを目的として,信頼性の一尺度であるバグ密度とコードクローンの関係を定量的に分析した.分析では,まずコードクローンの性質を表すメトリクス(クローンメトリクス)として,コードクローンの長さ,広がり,複雑度に着目した.そして,各クローンメトリクスに基づいてファイルを分類し,それぞれのファイル群の信頼性(バグ密度)を求めた.実験では,代表的なオープンソースソフトウェアであるEclipseのソースコードを題材とした.分析の結果,得られた知見は次の通りである.(1) 長いコードクローンを含んでいるファイル群のバグ密度は低い.(2) 多数のファイルに存在する跨ってクローンを含むファイル群のバグ密度は高い.(3) コードクローン自体の複雑度はバグ密度と関連がない.さらに,各ソースコードファイルの規模に応じて,ファイルを分類し,上記と同じ手順で信頼性とコードクローンの関係を分析した.その結果,規模が小さい時,長いコードクローンを含むファイル群のバグ密度は高いという(1)とは逆の傾向が見られた.さらに,規模が大きい時,多数のファイルに存在するコードクローンを含むファイル群のバグ密度は低いという(2)とは逆の傾向が見られた.これらの結果から,信頼性を向上させるコードクローンの特徴や低下させるコードクローンの特徴を明らかにした.