netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-12-08 [長年日記] ▲
_ [論文] AOPはモジュール性に問題あり? ▲
Friedrich Steimann: The Paradoxical Success of Aspect-Oriented Programming. [ACM site]
ACM SIGPLAN Notices, Volume 41, Issue 10 (Proceedings of OOPSLA 2006), pp.481-497.
AOPは問題をうまく規定しているけど解決はしてないんじゃないか,というエッセイです.AOPは「横断的関心事をモジュール化する」と言いつつも,今までのモジュールを壊してるから "paradoxical" だとしています.
AOPの特徴である obliviousness と quantification を達成しようとすると,アスペクトが fragile pointcut problem のような問題を抱えてしまい.これでは「モジュールごとに独立して開発できる」というモジュールの意味がない,というのが著者の考えのようです.
アスペクトとしてコードを分離しても,元あった場所から分離したところへのデータ依存がなくなるわけではないし,アスペクトがデータに勝手にアクセスするというのはせっかくのアクセス制御を無視している(データをグローバル変数化してしまう)し,いつアドバイスが実行されるか分からないのは制御フローの予測しやすさを奪っている,といったように,ソフトウェア工学の側面から問題点を指摘しています.
AOPの効果を疑わしく思う立場から書かれていて,AOPのメカニズムやカプセル化破壊のような問題から感じられる(私だけかもしれませんが)「気持ち悪さ」をうまく説明してくれていると思います.
Appendix として,モジュール性を取り戻すために,ということでXPIやOpen Modulesなどの研究が整理されているので,この種の研究を調べるときの開始点としてもよさそうです.