Skip to main content
QUICK REVIEW

[論文レビュー] An Empirical Evaluation of Impact of Refactoring On Internal and External Measures of Code Quality

Sampath Kannangara, Janaka Wijayanayake|arXiv (Cornell University)|Feb 12, 2015
Software Engineering Research参考文献 15被引用数 4
ひとこと要約

本研究は、ソフトウェアシステムにおける10のリファクタリング技法が内部的および外部的コード品質指標に与える影響を実証的に評価するものである。外部指標(リソース使用量や実行時間の挙動)にはリファクタリング後も改善が見られなかったが、内部指標では保守性インデックスが顕著に向上した。これはリファクタリングが、とりわけ保守性の観点からコード品質の一部を向上させることを示唆している。

ABSTRACT

Refactoring is the process of improving the design of existing code by changing its internal structure without affecting its external behaviour, with the main aims of improving the quality of software product. Therefore, there is a belief that refactoring improves quality factors such as understandability, flexibility, and reusability. However, there is limited empirical evidence to support such assumptions. The objective of this study is to validate/invalidate the claims that refactoring improves software quality. The impact of selected refactoring techniques was assessed using both external and internal measures. Ten refactoring techniques were evaluated through experiments to assess external measures: Resource Utilization, Time Behaviour, Changeability and Analysability which are ISO external quality factors and five internal measures: Maintainability Index, Cyclomatic Complexity, Depth of Inheritance, Class Coupling and Lines of Code. The result of external measures did not show any improvements in code quality after the refactoring treatment. However, from internal measures, maintainability index indicated an improvement in code quality of refactored code than non-refactored code and other internal measures did not indicate any positive effect on refactored code

研究の動機と目的

  • リファクタリングがソフトウェア品質を向上させるという広く共有された信念を、実証的に検証または否定すること。
  • 特定のリファクタリング技法が内部的および外部的コード品質指標に与える影響を評価すること。
  • リファクタリングが保守性、柔軟性、再利用性の測定可能な向上をもたらすかどうかを評価すること。
  • 循環的複雑度、結合度、およびコード行数といった標準的なソフトウェア品質要因に、リファクタリングが与える影響を分析すること。
  • リファクタリングが変更可能性や可解析性といった外部品質要因に、測定可能な改善をもたらすかどうかを特定すること。

提案手法

  • 本研究では、コード品質への影響を評価するために、10の特定のリファクタリング技法をソフトウェアシステム群に適用した。
  • 外部品質指標(リソース使用量、実行時間の挙動、変更可能性、可解析性)を収集し、分析した。
  • 内部品質指標(保守性インデックス、循環的複雑度、継承の深さ、クラス結合度、コード行数)をリファクタリング前後で計算した。
  • 実世界のコードベースを対象として実験を実施したことで、実用的関連性と実証的妥当性を確保した。
  • 統計的分析を用いて、内部および外部指標の前後比較を実施した。
  • 一貫性と比較可能性を確保するため、ISOで定義された外部品質要因と標準的な内部コードメトリクスを用いた。

実験結果

リサーチクエスチョン

  • RQ1リファクタリングは、リソース使用量や実行時間の挙動といった外部ソフトウェア品質要因に測定可能な改善をもたらすのか?
  • RQ2リファクタリングは、循環的複雑度やクラス結合度といった内部コード品質指標にどの程度の影響を及ぼすのか?
  • RQ3リファクタリング後に保守性インデックスに統計的に有意な改善が見られるか?
  • RQ4変更可能性や可解析性といった外部品質要因は、リファクタリング後に改善するのか?
  • RQ5どの内部メトリクスがリファクタリング後に一貫した正の変化を示し、どのメトリクスがそうではないのか?

主な発見

  • リソース使用量、実行時間の挙動、変更可能性、可解析性といった外部指標は、リファクタリング後も有意な改善を示さなかった。
  • 保守性インデックスは、リファクタリングされたコードにおいて非リファクタリングコードと比較して顕著に向上しており、保守性の向上を示している。
  • 循環的複雑度、継承の深さ、クラス結合度、コード行数は、リファクタリング後も一貫した正の変化を示さなかった。
  • 結果から、リファクタリングは保守性を向上させるが、一般的に想定されているように性能や構造的柔軟性を必ずしも向上させるわけではないことが示唆される。
  • 本研究は、リファクタリングの利点がすべての品質次元に均等に分布するわけではないという実証的証拠を提供している。
  • 内部メトリクスの中で、唯一の明確な正の効果を示したのは保守性インデックスのみであり、これはコード品質に与える影響が限定的であることを示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。