A component-based and aspect-oriented model for software evolution. (28th March 2008) - Pessemier, Nicolas; Seinturier, Lionel; Duchien, Laurence; Coupaye, Thierry
Component-Based Software Development (CBSD) and Aspect Oriented Software Development (AOSD) are solutions to support software evolution by decomposing a software system into concerns. In this paper, we propose Fractal Aspect Component (FAC), a general and symmetrical model for components and aspects. FAC decomposes a software system into regular components and aspect components which embody crosscutting concerns. We reify the relationship between an aspect component and a component, called an aspect binding, as a first-class runtime entity. The evolution of the system can be expressed by adding or removing components (aspect or regular) and by setting bindings (regular or crosscutting).