lOpen questions:
lShould aspects be allowed to break encapsulation?
lIs there a ‘fragile base aspect’ problem?
lHow should one deal with incremental changes?
l
Discussion
Identification and resolution of conflicts and inconsistencies
•AOP offers the possibility to break encapsulation of base code units. It gives the developer more flexibility and power, it also produces aspects that are more brittle, in that they rely on internal implementation details, and not just on the available interfaces. Changing the base code would then require taking into account the aspect definition in the system, which would contradict that aspects would be non invasive
•Use of inheritance to reuse a base aspect’s behavior leads to anomalies similar to the fragile base class problem in OO? Where seemingly innocuous modifications to the base code can have undesirable effects on its subclasses. Are there better ways to promote reusability and variability of aspects?
•Can leave the system in inconsistent state, breaking interaction of base and aspect behavior
   Can inintentionnaly cause other parts of the system to break. -> impact analysis