FAC (Fractal Aspect Component) is an extension of the Fractal component model for aspect-oriented programming. The purpose of FAC is to provide a programming model where components and aspects are first-class entities which can be assembled and composed seamlessly by designers and developers. FAC is innovating in the sense that, on the international stage, aspects have been studied so far only at the object level. We believe that the issues of code tangling and scattering exist at a higher level of granularity that of components. With FAC, we wish to provide one of the first models and its corresponding implementation for modularizing crosscutting concerns in component-based applications. The longer term goal of FAC is also to provide a unified framework where crosscutting concerns can be modularized at different levels of granularity: object, component and architecture. The work on FAC is conducted in the context of a France Telecom R&D research grant and is the subject of Nicolas Pessemier's PhD thesis.
FAC is LGPL open source software available at http://www.lifl.fr/ pessemie/FAC/