処理の委譲の有無に基づく一貫性が欠如したコードの特定
卒業論文, 大阪大学
特別研究報告
概要: ソフトウェア保守を行うにあたり,ソースコードの理解性を向上させる技術としてリファクタリングが存在する.この技術は保守作業の効率化に有効だが,大規模なソースコードからリファクタリングすべき箇所を手動で特定することは難しい.このため,リファクタリングの候補を自動で特定するなど,リファクタリングを支援する手法が多数提案されている.
メソッドを対象としたリファクタリングパターンの一例として,メソッドが行う処理の一部を別のメソッドに委譲する“メソッドの抽出”や,メソッドが処理の委譲を行わないようにする“メソッドのインライン化”がある.これらのリファクタリングパターンを支援する既存手法の多くはメソッドの長さや複雑度などを調べることでリファクタリングの候補を提示するが,提示された候補が実際にリファクタリングを適用すべきであるかを判断することもまた難しいといえる.
そこで本研究では,処理の委譲の有無に着目してリファクタリングの候補を特定する手法を提案する.類似した処理を行い,かつ,処理の委譲の有無が異なる箇所を同時に開発者に提示することで,特定のしきい値によるコード単体での判断でなく,複数のコードを見比べることによる判断が可能となり,リファクタリングを適用すべきであるかを判断するための支援ができると考える.また,提案手法をツールとして実装し,異なる開発者による複数のソフトウェアと,オープンソースソフトウェアに対して実験を行った.実験の結果,提案手法は類似した処理を実装しており,かつ,処理の委譲の有無が異なる箇所をリファクタリングの候補として提示できることを確認した.
タグ: Software, Maintenance, Source, Code, Analysis, Source, Code, Understanding, Refactoring
@mastersthesis{高良多朗2014a,
author = {高 良多朗},
title = {処理の委譲の有無に基づく一貫性が欠如したコードの特定},
school = {大阪大学},
type = {Bachelor's Thesis},
year = {2014},
month = {feb}
}