楠本研究室

業績一覧

ホーム業績一覧

プログラム構造に着目したソースコード理解性向上のためのリファクタリング支援手法

プログラム構造に着目したソースコード理解性向上のためのリファクタリング支援手法
修士論文, 大阪大学
概要: ソフトウェア保守を行うにあたって,最も時間的コストの高い作業はソースコードを読み理解することである.そのため,ソースコードの理解性を向上させることで,ソフトウェアの保守作業全体のコストを削減することができる.ソースコードの理解性を向上させる手段の1つとして,プログラムの振る舞いを変えずに内部構造を改善するリファクタリングという技術が存在する.本研究では,ソースコードの理解性を向上させるためのリファクタリング支援として,2つの手法を提案する. 1つ目は,リファクタリングすべき箇所を特定するため,理解性の低いモジュールを検出する手法である.一般的な方法として,サイクロマチック数や行数といったメトリクスを計測し,これらの値が大きければ理解性が低いとみなす方法が挙げられる.しかし,連続して記述されたif文など,ソースコード中に類似した構造の繰り返しが存在する場合,メトリクスの値が大きくても理解性が低いとは限らない.そこで,メトリクスを計測する前処理として,繰り返し構造を折りたたんでプログラム構造を簡略化する手法を提案する.提案手法を適用した場合としなかった場合のメトリクスを計測して比較を行ったところ,提案手法を適用して計測したメトリクスの方が,理解性の低いモジュールを特定するのに有用であることが分かった. 2つ目は,ソースコードの理解性を向上させるための,プログラム文の並び替え手法である.既存研究として,ソースコードを読んで理解しようとする際,変数が定義されてから参照されるまでの距離が離れていると理解するためのコストが増大することが報告されている.従って,文の並びはソースコードの理解性に影響を及ぼすと考えられる.そこで,変数の定義・参照間の距離に着目して,モジュール内の文を並び替える手法を提案する.提案手法をオープンソースソフトウェアに適用し,並び替えの行われたモジュールについて被験者からの評価を得たところ,並び替えの行われたモジュールは理解性が向上するという結果が得られた. タグ: source, code, understanding, refactoring, metrics, measurement, source, code, analysis, data, flow, analysis
@mastersthesis{佐々木唯2013,
  author = {佐々木 唯},
  title = {プログラム構造に着目したソースコード理解性向上のためのリファクタリング支援手法},
  school = {大阪大学},
  year = {2013},
  month = {feb}
}