Skip to main content
QUICK REVIEW

[論文レビュー] A classification of invasive patterns in AOP

Freddy Muñoz, Benoît Baudry|ArXiv.org|Apr 10, 2008
Elevator Systems and Control参考文献 9被引用数 7
ひとこと要約

本稿は、アスペクト指向プログラミング(AOP)における侵入的パターンの細分化分類システムを提案する。アスペクトが基本プログラム構造および振る舞いをどのように変更するかに焦点を当て、AspectJのメカニズムを分析することで、侵入性を行動的、データアクセス、構造的の3つの次元に分類する。これにより、開発者はアスペクトのリスクを吟味し、AOPシステムにおけるモジュール性と安全性を向上させることができる。

ABSTRACT

Aspect-Oriented Programming (AOP) improves modularity by encapsulating crosscutting concerns into aspects. Some mechanisms to compose aspects allow invasiveness as a mean to integrate concerns. Invasiveness means that AOP languages have unrestricted access to program properties. Such kind of languages are interesting because they allow performing complex operations and better introduce functionalities. In this report we present a classification of invasive patterns in AOP. This classification characterizes the aspects invasive behavior and allows developers to abstract about the aspect incidence over the program they crosscut.

研究の動機と目的

  • AOPにおける侵入的行動の体系的特徴付けの欠如に起因するカプセル化の損ないや意図しない副作用の発生を是正すること。
  • 開発者がアスペクトが基本プログラムに与える影響とリスクを体系的に吟味できるようにすること。
  • 侵入的行動の特定と分類を通じて、AOPシステムの仕様定義と検証の改善を可能にすること。
  • アスペクト相互作用の形式的分類を通じて、より安全で予測可能なAOPフレームワークの開発を支援すること。

提案手法

  • プログラムの変更の核心的パターンを特定するため、AspectJの侵入的メカニズムを分析する。
  • 侵入的行動を行動的(増幅、置換、条件付き置換)、データアクセス(読取、書込、引数渡し)、構造的(階層、フィールド追加、メソッド追加)の3次元に分類する。
  • 各分類カテゴリを実際の例(MyArrayListとMyAspect)を用いて説明する。
  • フィールド、メソッド引数、クラス構造へのアクセスパターンに基づく分類を導出する。特に、アスペクトがカプセル化を破壊する仕組みに注目する。
  • 提案された分類を既存の研究と比較し、その粒度と実用性を検証する。
  • これらの侵入的パターンに基づき、将来のアスペクトおよび基本プログラムの仕様定義のためのフレームワークを策定する。

実験結果

リサーチクエスチョン

  • RQ1AOPにおける侵入的行動をどのように体系的に分類すれば、基本プログラムへの影響を吟味できるか?
  • RQ2アスペクトがプログラム構造、振る舞い、データアクセスをどのように変更するかの明確なパターンは何か?
  • RQ3制御フローおよびフィールドアクセスの観点から、侵入的AOPメカニズムと非侵入的または安全なアスペクトとはどのように異なるか?
  • RQ4この分類は、アスペクト指向プログラムの仕様定義と検証をどの程度向上させ得るか?
  • RQ5既存の分類アプローチには、侵入的AOP行動の全範囲を捉える上でどのような限界があるか?

主な発見

  • 本稿は、行動的、データアクセス、構造的の3次元に細分化された包括的な侵入的AOPパターン分類を提示する。
  • 行動的次元には、実行フローを変更する増幅、置換、条件付き置換などのパターンが含まれる。
  • データアクセス次元では、オブジェクトのフィールドやメソッド引数にアクセスまたは変更する読取、書込、引数渡しなどのパターンが特定される。
  • 構造的次元には、クラス階層の変更、フィールドの追加、メソッドの追加といった、クラス構造自体を変更する操作が含まれる。
  • 分類により、あるパターンは互いに排他的(例:同じアドバイス内で置換と条件付き置換は共存できない)であり、他のパターンは補完的(例:書込は増幅を含意する)であることが明らかになった。
  • 本分類は、Katzの3段階モデル(観察的、規制的、侵入的)よりも細分化されており、将来的なAOPにおける仕様定義フレームワークの基盤を提供する。

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

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

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

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