アスペクト指向プログラミング
『ジェネレーティブプログラミング』では、概念の分割の方法に
モジュール分割とアスペクト分割の二つがあるとする。モジュール分割は「階層的単位にシステムを分割すること」であり、アスペクト分割は「概念を観点の集合として記述することを基本的な発想としており、各々の観点が他の観点と関係し、かつどの観点も単独では概念全体を十分に記述することができないような場合」に使うものであるとする。モジュール分割とアスペクト分割は相互に補完的なものとして構想されている。「概念を観点の集合として記述する」というのは
サブジェクト指向プログラミングや、
エリック・エヴァンスのドメイン駆動設計における
Bounded Contextとも共通する考え方である。
(『ジェネレーティブプログラミング』p.115)
>AOPのゴールは、問題を多くの機能的なコンポーネントの中に、それらを縦断する多くのアスペクトとして分解し、それらのコンポーネントとアスペクトをコンポジションして、システムの実装を獲得する手法とテクニックを提供することです。
> (『ジェネレーティブプログラミング』pp.234,235)