Removing Indirection Objects for Non-functional Properties

Complex applications generally include many aspects. A general trend in software development is to separate, as long as possible, these different aspects in order to improve the quality of the software which is easier to maintain [9]. The past few years have seen the emergence of component-based programming which promotes the separation of aspects. Component-based programming aims at improving code evolution and reuse by enabling the configuration of complex component-based architectures and the association of different aspects with the components which compose this software architecture.