Aspects and Modules Combined

The paper makes the point that units with aspectual methods make a good aspect-oriented programming construct. Units are a basic module construct (Flatt and Felleisen) similar to parameterized hardware modules that allow local module instances connected by link statements (as in the hardware description languages, e.g. Zeus). So this paper can be summarized as: "aspectual collaborations = units plus aspectual methods". Mitch Wand views aspectual collaborations as event-based systems where the aspectual methods subscribe to e-events by exporting an e-handler. Methods who publish e-events import this e-handler. (This view is motivated by emacs handlers available since the 80s. Those handlers offer a predetermined pointcut.) The aspectual methods describe what to execute instead of the events of interest. In this model, units may export pointcuts to control where advice may be put.

Compare with Doug Orleans' thesis proposal. He studies "Fred = units plus branches". Doug shows, using the same examples as in this paper, how Fred can express aspectual collaborations. Fred is a more complex language than aspectual collaborations because Fred has a very rich pointcut language compared to the pointcuts of aspectual collaborations. An open problem is whether the generality of Fred is needed for practical applications or whether something more restrictive like aspectual collaborations is better and safer.

In future work we want to apply these two aspectual unit approaches to distributed, real-time, embedded systems (DRE) systems. As testbed we use QuO from BBN, a well-known and one of the early aspect systems Specifically, we will focus on quoskets as aspectual units Header quoskets are especially interesting to study. The ASL files are noteworthy. The goal of quoskets is to encapsulate system code and separate it from business code.

Composition of components and aspects and contracts and system conditions is a little complex in QuO 3.0 and it is hoped that using either "units plus aspectual methods" (or "units plus branches") will help develop a cleaner composition approach.


Bibtex entry:

AUTHOR = "Johan Ovlinger and Karl Lieberherr and David Lorenz",
TITLE = "Aspects and Modules Combined",
YEAR = "2002",
INSTITUTION  = "College of Computer Science, Northeastern University",
YEAR         = 2002,
MONTH        = "March",
NUMBER       = "{NU-CCS-02-03}",
ADDRESS      = "Boston, MA",