|Cristina Lopes, Xerox PARC
AspectJTM : Aspect-Oriented Programming using Java(tm) technology
One of the great strengths of object-oriented programming is that it improves the modularity of programs. Using an object-oriented language, like the JavaTM programming language, programs are easier to develop because the program units (classes) naturally parallel the design units (objects).
But many common design structures are difficult to modularize using object technology alone. Examples include exception handling policies, multi-object protocols, synchronization constraints and performance optimizations. Instead of being well modularized, the code for these concerns tends to cut across several classes. This results in tangled source code that can be difficult both to read and to maintain.
Aspect-oriented programming (AOP) addresses this problem by introducing "aspects". Aspects are design and program units that can capture crosscutting concerns as single modular units.
AspectJ is a Java platform compatible aspect-oriented extension to the Java programming language. AspectJ makes it possible to use the power of aspects without sacrificing any of the benefits of the Java platform.
This talk will present AspectJ and its mechanisms for handling crosscutting modularity. It will show detailed examples of the kinds of crosscutting concerns AspectJ can address. It will identify the key technical issues in AspectJ research and development. It will also include a comparison to other work on advanced mechanisms for separation of concerns on the Java platform.
Wednesday 11:00 - 12:00
Cristina Videira Lopes is a research scientist at the Xerox Palo Alto Research Center. She has PhD in Computer Science and a BS and MS in Computer Engineering. She has done work in programming languages and distributed systems. For the last three years, her team at PARC has been developing a programming technique called aspect-oriented programming (AOP).
She is a founding member of the AspectJ project http://aspectj.org, and one of the main evangelists for AOP.