Kiczales.html
Horizon
Day
Programming
Languages
for
Real-World
Software
Speaker:
Title:
Aspect-Oriented Programming
Going Beyond Objects for Better Separation of Concerns in Design and Implementation
(2:00-3:15 p.m., November 6, 1998, Lindley Hall 102)
Abstract:
Objects have been a great success. They have improved software
development by allowing us to cleanly encapsulate units of functionality
of various scales -- from simple data structures to GUI tools to network
servers.
But objects don't seem to help as much in dealing with systemic concerns
such as synchronization, multi-object protocols, resource sharing,
memory management, replication and the like. Trying to localize
synchronization issues inside of an object just doesn't seem to work as
well as trying to localize UI functionality inside of an object. Much
of the complexity and brittleness in existing systems appears to stem
from the way in which the programming of these issues is intertwined
throughout the code.
We have invented a new unit of software modularity, called an aspect,
that appears to provide a better handle on managing such systemic
issues.
Like objects, aspects are intended to be used in both design and
implementation. During design they make it possible to better localize
systemic design issues. During implementation, aspect-oriented
programming languages make it possible to program directly in terms of
aspects, just as object-oriented languages have made it possible to
program directly in terms of objects in the design.
This talk will present the idea of aspects, aspect-oriented programming
and the kinds of systems the technology appears to be best suited
for. It will also include a demonstration of AspectJ(tm) a set of
general-purpose aspect-oriented extensions to Java(tm).
Biography:
Gregor Kiczales is a principal scientist at the Xerox Palo Alto Research
Center. His research interests are in software architecture, programming
languages and software engineering. He has worked on a variety of ideas
to better capture the structure of complex software systems, including
metaobject protocols, open implementation, and most recently
aspect-oriented programming. He is a co-author of "The Art of the
Metaobject Protocol".