Aspect-Oriented Programming
(what we are learning from AspectJ and other projects)
Gregor Kiczales
Department of Computer Science
University of British Columbia
ABSTRACT
Aspect-oriented programming (AOP) has been proposed as a technique for
improving separation of concerns in software.
The central idea in AOP is that while the hierarchical and block structured
modularity mechanisms of object-oriented and procedural programming are
extremely useful, they are inherently unable to capture all concerns of
interest in complex systems.
Instead, we believe, that in any complex system there will be concerns that
crosscut the hierarchical (or block) structure of the overall system.
That is, there will be aspects of the implementation which one would
like to modularize, but which instead be spread out.
This happens because the natural modularity of these concerns crosscuts
the natural modularity of the rest of the implementation.
AOP does for concerns that are naturally crosscutting what OOP did for
concerns that are naturally hierarchical -- it provides language support
that allows crosscutting structure to be explicit, clear and composable.
This makes it possible to program crosscutting aspects in a modular way.
Once they are well modularized, all the usual benefits of better modularity
apply: including code that is easier to design, develop, maintain and reuse.
In the talk I will present the motivation and basic idea of AOP, and
discuss what we are learning from the AspectJ project at Xerox PARC
and work with AspectC at UBC.
BIOGRAPHY
Gregor Kiczales is Professor of Computer Science and the NSERC, Xerox
Canada, Sierra Systems Chair of Software Design at the University of
British Columbia.
His research is directed at enabling programmers to write programs that,
as much as possible, look like their design.
He has worked on a variety of techniques to achieve this,
including object-oriented programming metaobject protocols,
open implementation, and most recently aspect-oriented programming.
He is author, with Danny Bobrow and Jim des Rivieres of
"The Art of the Metaobject Protocol".
He is also a Principal Scientist at the Xerox Palo Alto Research Center,
where he leads the group that has developed aspect-oriented programming
and AspectJ.
Host:
Duane Szafron
|