The abstraction mechanisms of most current programming languages --- subroutines, procedures, functions, objects, classes, modules and APIs --- can all be thought of as fitting into a generalized procedure call model. The design style they support is one of breaking a system down into parameterized components that can be called upon to perform a function.
But many systems have properties that don't necessarily align with the system's functional components. Failure handling, persistence, communication, replication, coordination, memory management, real-time constraints, and many others, are aspects of a system's behavior that tend to cut-across groups of functional components. While they can be thought about and analyzed relatively separately from the basic functionality, programming them using current component-oriented languages tends to result in these aspects being spread throughout the code. The source code becomes a tangled mess of instructions for different purposes.
This "tangling" phenomenon is at the heart of much needless complexity in existing software systems. It increases the dependencies between the functional components. It distracts from what the components are supposed to do. It introduces numerous opportunities for programming errors. It makes the functional components less reusable. In short, it makes the source code difficult to develop, understand and evolve.
A number of researchers have begun working on approaches to this problem that allow programmers to express each of a system's aspects of concern in a separate and natural form, and then automatically combine those separate descriptions into a final executable form using automatic tools. These approaches have been called Aspect-Oriented Programming (AOP).
The purpose of this workshop is to bring together researchers and practitioners working on a wide range of AOP techniques, including languages, tools, frameworks, programming styles, etc.
The workshop will be structured around presentations and extended discussions.
Compositional
Object Technology
ECOOP'97 workshop on
Aspect-Oriented Programming
The
workshops
at ICSE'98.
Cristina Lopes is a researcher at the Xerox Palo Alto Research Center. Her research interests are in software engineering and programming languages. She has been working on designing an aspect-oriented programming language for distributed systems. She was co-organizer of the OOPSLA'95 workshop on Adaptable and Adaptive Systems, and co-organizer of the ECOOP'97 first workshop on Aspect-Oriented Programming.
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. His work on techniques to better capture the structure of complex software systems has included metaobject protocols, open implementation, and most recently aspect-oriented programming.
Gail Murphy is an Assistant Professor in the Department of Computer Science
at the University of British Columbia in Vancouver, Canada. Her research
interests are in software engineering with a particular focus on software
evolution. Her current projects include work on source code analysis techniques,
reverse engineering, and software design techniques. She served as a co-organizer
for the OOPSLA '95 Workshop on Testing Smalltalk Applications and was a member
of the tutorial committee for OOPSLA '96. She has also been a member of the
program committees for Reflection '96, the ICSE '97 Doctoral Symposium, the
1997 Intl. Conf. on Distributed Computing Systems (ICDCS), and OOPSLA '97.
She is a member of the tutorial committee for ICSE '98.
[Last update: May 8, 1998]