Skip to main content
QUICK REVIEW

[論文レビュー] 30 Years of Software Refactoring Research:A Systematic Literature Review

Chaima Abid, Vahid Alizadeh|arXiv (Cornell University)|Jul 4, 2020
Software Engineering Research参考文献 235被引用数 12
ひとこと要約

本研究は、30年間にわたり3,183篇のソフトウェアリファクタリング関連論文を分析する体系的レビューであり、分 散した分野を整理する包括的な分類体系を提案している。コードレベルのリファクタリングを超えた、アーキテクチャ レベル、モデルレベル、非機能的目標指向のリファクタリングの動向を特定し、スケジューリング、推薦、機会検出、 正しさの検証に関する主要な研究ギャップを明らかにしている。

ABSTRACT

Due to the growing complexity of software systems, there has been a dramatic increase and industry demand for tools and techniques on software refactoring in the last ten years, defined traditionally as a set of program transformations intended to improve the system design while preserving the behavior. Refactoring studies are expanded beyond code-level restructuring to be applied at different levels (architecture, model, requirements, etc.), adopted in many domains beyond the object-oriented paradigm (cloud computing, mobile, web, etc.), used in industrial settings and considered objectives beyond improving the design to include other non-functional requirements (e.g., improve performance, security, etc.). Thus, challenges to be addressed by refactoring work are, nowadays, beyond code transformation to include, but not limited to, scheduling the opportune time to carry refactoring, recommendations of specific refactoring activities, detection of refactoring opportunities, and testing the correctness of applied refactorings. Therefore, the refactoring research efforts are fragmented over several research communities, various domains, and objectives. To structure the field and existing research results, this paper provides a systematic literature review and analyzes the results of 3183 research papers on refactoring covering the last three decades to offer the most scalable and comprehensive literature review of existing refactoring research studies. Based on this survey, we created a taxonomy to classify the existing research, identified research trends, and highlighted gaps in the literature and avenues for further research.

研究の動機と目的

  • 30年間にわたり3,183篇の論文を統合して、ソフトウェアリファクタリング研究分野の散逸した状態を整理すること。
  • 伝統的なコードリファクタリングを超えた、アーキテクチャ、モデル、要件レベルでの応用を含む、進化する研究動向を特定すること。
  • クラウドコンピューティング、モバイル、ウェブシステムなど、多様な分野におけるリファクタリングの導入状況を調査すること。
  • パフォーマンス、セキュリティ、保守性などの非機能的品質特性を向上させるためにリファクタリングがどのように活用されているかを検討すること。
  • スケジューリング、特定のアクションの推薦、機会検出、正しさの検証といった分野における、重要な研究ギャップを同定すること。

提案手法

  • 主要な学術データベースおよびリポジトリを対象に、事前に定義された検索基準を用いて体系的レビューを実施した。
  • 1990年から2020年までの間に発表された3,183篇の論文をスクリーニング・分析し、包括的なカバーを確保した。
  • レベル(コード、アーキテクチャ、モデル、要件)、パラダイム(OOP、非OOP)、目的(設計、パフォーマンス、セキュリティなど)に基づいてリファクタリング研究を分類する多次元分類体系を開発した。
  • メタデータおよびコンテンツを用いて、時間的傾向、研究の焦点のシフト、コミュニティの分断を同定した。
  • 主題分析を用いて、文献から繰り返し現れる課題と研究方向性を抽出した。
  • 反復的レビューと著者間の合意形成を通じて、正確性と包括性を確保するため、研究結果を検証した。

実験結果

リサーチクエスチョン

  • RQ1過去30年間において、リファクタリング研究の範囲は、コード、アーキテクチャ、モデル、要件といったソフトウェア開発の異なる段階でどのように変化してきたか?
  • RQ2リファクタリングが適用されている支配的なパラダイムと分野は何か。また、時間の経過とともにそれらはどのように変化してきたか?
  • RQ3パフォーマンス、セキュリティ、保守性といった非機能的品質特性の向上を目的としたリファクタリングの使用は、どの程度まで進展しているか?
  • RQ4スケジューリング、推薦、正しさの検証といった分野において、現在の研究で十分に検討されていない主な課題は何か?
  • RQ5リファクタリング研究において、分野、目的、方法論的アプローチごとに、研究コミュニティはどの程度分断されているか?

主な発見

  • リファクタリング研究は、伝統的なオブジェクト指向コードの再構築をはるかに超えて、アーキテクチャ、モデル、要件レベルの変換を含むよう拡大している。
  • パフォーマンス、セキュリティ、スケーラビリティなどの非機能的特性の向上を目的としたリファクタリングの応用が、クラウドおよびモバイルシステムにおいて顕著に増加している傾向にある。
  • 関心が高まっているにもかかわらず、最適なリファクタリング実施時刻のスケジューリング、具体的なリファクタリングの推薦、リファクタリング機会の検出に関する研究は依然として未発達である。
  • 実際の現場では、適用されたリファクタリングの正しさの検証がほとんど行われていないことから、ツールと検証支援における重要なギャップが明らかになった。
  • 分野やコミュニティごとに研究が著しく分断されており、クロスドメインの統合や共通のフレームワークの構築が不十分である。
  • 本研究で開発した分類体系は、リファクタリング研究の12の異なるカテゴリーを捉えており、研究の焦点が単なる設計指向から、より広範なソフトウェア品質の目標へとシフトしていることを示している。

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

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

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

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