楠本研究室

業績一覧

ホーム業績一覧

修正の分類に基づくリポジトリ再構築手法

修正の分類に基づくリポジトリ再構築手法
卒業論文, 大阪大学
概要: 近年,ソフトウェアリポジトリマイニングが注目されている.ソフトウェアリポジトリにはソフトウェアの開発に関する様々な情報が格納されている.リポジトリに格納されている情報を抽出(マイニング)することによって,将来の開発および保守作業に有益な知見を得ることができる.ソフトウェアリポジトリマイニングにおいては,コミットの情報を利用することが多い.コミットとは,開発者が手元で行ったソースコードなどに対する変更をリポジトリに対して反映させることである.コミットを分析することによって,開発者が過去に行った変更に関する情報を得ることができる. しかし,コミットの中には他に比べて非常に規模の大きいものが存在する.それらは例えばフォーマット変更などであり,IDEのフォーマット一括変換機能等を用いて自動的にフォーマットが整えられるという修正である.このような規模の大きいコミットの存在は,その他のコミットから抽出した情報の影響を過度に低くしてしまう場合がある.たとえば,各モジュールにおいて過去に修正された総行数を計算することにより,それらに必要であった修正コストを見積もる場合,IDEによるフォーマット変換は考慮に入れるべきではない.もしそれらを考慮に入れてしまうと,正しい見積もりが行えなくなる.このような理由により,規模の大きなコミットはしばしば分析対象から除外される.しかし,フォーマット変換と同時に数行に対してバグ修正を行っているコミットが存在した場合,このコミットの除外によりフォーマット変換による影響を取り除くことができるが,バグ修正の影響も図らず取り除いてしまう. このような,1つのコミット中に複数の修正が存在することによって発生する問題を解決するため,本研究ではコミットに含まれる修正を分類し,それに基づいてコミットを分離する手法を提案する.提案手法を用いることによって,各コミットには一種類のみの修正が含まれるようになる.よって,規模の大きいコミットを除外することによって,数行のバグ修正に関する情報までも取り除いてしまうことがなくなる. 提案手法を実装し,評価実験を行った.ソフトウェア開発者による手動のコミット分離との比較を行った結果,提案手法によるコミット分離の適合率は67%,再現率は72%であった.また,大規模なオープンソースソフトウェアに対して適用し,多数のコミットに複数種類の分類が含まれていたことを確認した. タグ: software, repository, mining, version, control, system, commit, longest, common, subsequence
@mastersthesis{楠野明2013a,
  author = {楠 野明},
  title = {修正の分類に基づくリポジトリ再構築手法},
  school = {大阪大学},
  type = {Bachelor's Thesis},
  year = {2013},
  month = {feb}
}