Kiczales.html
Lindley Hall
Horizon Day
Programming Languages
for
Real-World Software

Speaker:

Gregor Kiczales

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".