| | |
Summary: Open Modules:
Reconciling Extensibility and Information Hiding
Jonathan Aldrich
School of Computer Science
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA 15213, USA
jonathan.aldrich@cs.cmu.edu
ABSTRACT
Aspect-oriented programming systems provide powerful
mechanisms for separating concerns, but understanding
how these concerns interact can be challenging. In partic-
ular, many aspect-oriented programming constructs can vio-
late encapsulation, creating dependencies between concerns
that make software evolution more difficult and error-prone.
In this paper, we introduce Open Modules, a mechanism
for enforcing a strong form of encapsulation while support-
ing much of the extensibility provided by languages like
AspectJ. Open Modules provide extensibility by allowing
clients to advise the interface of a module, but enforce encap-
|