More about the organizers...
The abstraction mechanisms 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.
At ECOOP'97 there was an AOP workshop that joined a number of researchers interested in aspect-orientation. It was generally accepted that aspect-oriented programming is a means to reduce the problem of code tangling, therefore improving the quality of software. The main goal of last year's workshop was to identify the "good questions" for exploring the idea even further.
In this year's AOP workshop, we will discuss
the questions that were raised then, the progress in some research topics
that emerged, and any new topics that may be brought up by the participants.
Some of those topics are: aspects in the software lifecycle, run-time and
compile-time weaving, theoretical foundations for AOP, different combinations
of aspects and components, aspects and other programming paradigms, general-purpose
vs. domain- or application-specific aspect
languages, and measuring the benefits
of aspects.
Participants will be asked to write position
papers about any of these or other related topics. The workshop will be
structured around presentations and extended discussions. Participants
are encouraged to explore different visual approaches to presenting the
different aspects in a system.
Two kinds of position papers will be accepted:
ECOOP
'98: General Home Page
Aspect-Oriented Programming Home
page
Ecoop '97, first AOP
workshop
TRESE home page