The goal of AOP (Aspect-Oriented Programming) is to turn a tangled and scattered implementation of a crosscutting concern into an aspect, i.e. a well-modularized implementation of the concern. The goal of the proposed research is to design and implement a collaboration-based language for aspect-oriented programming that supports reusable aspects. The potential impact of the proposed research is to improve the development and maintenance of complex software.
The design and implementation of the new language will be evaluated in two diverse domains: telecommunication applications in collaboration with BBN and banking applications in collaborations with UBS. The success of the project will be measured based on the ease of evolution of the applications that will be built with our language. It is expected that the tangling control offered by AOP and the loose coupling between class graphs and path sets offered by adaptive programming will lead to more flexible software that is easier to evolve.