|Gregor Kiczales, 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.
Monday 13:00 - 15:00
Gregor Kiczales is Professor of Computer Science at the University of British Columbia, where he holds the Xerox, Sierra Systems, NSERC Chair of Software Design. He is also leader of the Xerox PARC group that has developed aspect-oriented programming and AspectJ.
AspectJ project http://aspectj.org, and one of the main evangelists for AOP.