This paper introduces an extension to the object oriented programming paradigm.  




Concern:  properties or areas of interest of a system 


Aspect Oriented techniques:


finds concerns and separates them out from other concerns, taking them out of the object structure.


1.  Specify aspects:  define joining points, figure out the parameterization and the extent to which aspects can be customized for a particular use.  Figure out dependence on OO programming systems.


2.  Static/Dynamic divides.


3.  Decoupling.  can the writer of the main code ignore the aspect's details or not.


4.  Global vs local functionality.


5.  Context: domain specific? unique? reusable? testability?


"Law of Demeter": objects should only have knowledge of closely related objects.


Separation of behavioral concerns from structural.


Critiques of Object Oriented techniques:


1.  finding commonality among classes and push them up in the inheritance tree.