Aspect-oriented programming (AOP) controls tangling of concerns
by isolating aspects that cross-cut each other into building blocks.
Component-based programming supports software development by
isolating reusable building blocks that can be assembled
and connected in many different ways.
We show how these concepts can be integrated by introducing a
new component construct for programming called
\emph{aspectual collaborations}.
We explore how these collaborations can be be deployed, composed, and reused.
Aspectual collaborations allow us to capture cross-cutting
behavior -- for example, intercessionary advice, exception handling,
maintain invariants, and add generic behavior -- in separately compiled units.
These compiled can then be flexibly deployed once or several
times into base applications or composed with other collaborations.
The Java type system suffices to provide reasonable type safety
within collaborations, and combined with the outlined
desugaring approaches, allows us to almost completely base
our static safety claims on the analyses performed by the Java compiler.
Bibtex entry:
@TECHREPORT{MP-AC,
AUTHOR = "Karl Lieberherr and Johan Ovlinger and Mira Mezini and David Lorenz",
TITLE = "{Modular Programming with Aspectual Collaborations}",
INSTITUTION = "College of Computer Science, Northeastern University",
YEAR = 2001,
MONTH = "March",
NUMBER = "{NU-CCS-2001-04}",
ADDRESS = "Boston, MA",
PAGES = "1-12"
}
Related paper: DJ and AOP