Skip to main content
QUICK REVIEW

[論文レビュー] A Systematic Aspect-Oriented Refactoring and Testing Strategy, and its Application to JHotDraw

Arie van Deursen, Marius Marin|arXiv (Cornell University)|Mar 5, 2005
Advanced Software Engineering Methodologies参考文献 31被引用数 38
ひとこと要約

本論文は、AspectJを用いてレガシーオンジェクト指向システムをアスペクト指向プログラミングに移行するための体系的でテスト駆動のリファクタリング戦略「Bettar」を提案する。JHotDrawにこの戦略を適用することで、動作保存型リファクタリング、故障モデル、適切性基準を実現し、モジュール性と拡張性の向上を達成した。また、検証済みで段階的なクロスカuttingな concern の移行が可能となった。

ABSTRACT

Aspect oriented programming aims at achieving better modularization for a system's crosscutting concerns in order to improve its key quality attributes, such as evolvability and reusability. Consequently, the adoption of aspect-oriented techniques in existing (legacy) software systems is of interest to remediate software aging. The refactoring of existing systems to employ aspect-orientation will be considerably eased by a systematic approach that will ensure a safe and consistent migration. In this paper, we propose a refactoring and testing strategy that supports such an approach and consider issues of behavior conservation and (incremental) integration of the aspect-oriented solution with the original system. The strategy is applied to the JHotDraw open source project and illustrated on a group of selected concerns. Finally, we abstract from the case study and present a number of generic refactorings which contribute to an incremental aspect-oriented refactoring process and associate particular types of crosscutting concerns to the model and features of the employed aspect language. The contributions of this paper are both in the area of supporting migration towards aspect-oriented solutions and supporting the development of aspect languages that are better suited for such migrations.

研究の動機と目的

  • アスペクト指向プログラミングへの移行に向けた体系的で動作保存型の戦略の不足を解消すること。
  • 移行中に動作の保存を保証するテスト戦略を構築すること。
  • アスペクト言語(例:AspectJ)が大規模システムにおける実世界のクロスカットインコントロール concern をリファクタリングするのに適しているかを評価すること。
  • 実験的調査を可能にするために、オリジナル版とアスペクト指向版の両方を公開可能なオープンソースとして提供すること。
  • クロスカットインコントロール concern の種類と利用可能な言語機能のギャップを特定することで、アスペクト言語設計に貢献すること。

提案手法

  • ファンイン解析やクローン検出などの「アスペクトマイニング」技術を用いて、レガシーコード内のクロスカットインコントロール concern を同定する。
  • 体系的で段階的なプロセスに従ってアスペクトを設計する: concern の特定、散らばり/混在の評価、アスペクトの設計、テストによる検証。
  • アスペクト指向の故障モデルを導入し、テストの適切性基準を定義することで、リファクタリング中の動作保存を保証する。
  • JHotDrawのアスペクト指向版(AJhotDraw)を実装し、アスペクトの woven 機能を AspectJ で利用する。
  • 特定のクロスカットインコントロール concern について個別の事例研究を実施し、リファクタリング前後を検証テストで比較する。
  • 事例研究から一般化されたリファクタリングを抽出し、クロスカットインコントロール concern の種類を特定のアスペクト言語機能やモデルにマッピングする。

実験結果

リサーチクエスチョン

  • RQ1どのようにして、レガシーなオブジェクト指向システムをアスペクト指向プログラミングに移行するための体系的で動作保存型のリファクタリング戦略を設計できるか?
  • RQ2アスペクト指向リファクタリング中に動作保存を保証するために必要なテストの適切性基準と故障モデルは何か?
  • RQ3既存のアスペクト言語で表現が難しいクロスカットインコントロール concern の種類は何か?また、言語機能はリファクタリングの実現可能性にどのように影響するか?
  • RQ4アスペクト指向リファクタリングは、JHotDraw のような実世界のシステムにおいて、モジュール性、拡張性、再利用性をどの程度向上させるか?
  • RQ5公開可能な双方向比較システム(オリジナル版とアスペクト指向版)は、ソフトウェア進化分野における比較的実験的研究をどの程度支援できるか?

主な発見

  • Bettar戦略は、JHotDraw を AJhotDraw に体系的かつ段階的にリファクタリングするのに成功し、観察可能な動作を保存した。
  • 提案されたアスペクト指向の故障モデルとテスト適切性基準により、移行中の動作保存を検証する体系的なアプローチが可能になった。
  • JHotDraw に含まれる複数のクロスカットインコントロール concern(例:undo/redo やレイアウト管理)がアスペクトに成功裏にリファクタリングされ、モジュール性が向上し、コードの散らばりが減少した。
  • 本研究では、特定の複雑なクロスカットインコントロール concern に対して、AspectJ の joint point モデルや機能セットの制限が明らかになり、アスペクト言語の強化の余地が示された。
  • JHotDraw と並行して公開された AJhotDraw は、今後のアスペクト指向リファクタリングの利点に関する実験的調査を可能にする。
  • リファクタリングの分析から、特定の concern が特定のアスペクト言語機能に適していることが判明し、関心の種類と言語能力をマップするカタログ作成の必要性が裏付けられた。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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