If you would like to propose a discussion topic, please send email to Yvonne Coady, so that she can add your idea to the Web page.

Design Choices for Aspects + Components

Proposed by Eric Eide.

Several papers at ACP4IS 2003, AOSD 2003, and previous venues describe systems that combine components and aspects in various ways. Each system makes different design choices about the nature of the combination; answering questions about the designs can help us to understand the relationships between existing systems and the concerns that they are intended to address.

What is the nature of the underlying component model? Are aspects container-based, or components themselves, or invasive, or something else? How is advice defined, e.g., by hand or by code generation? When does weaving take place? What is the granularity of weaving? Can aspects be unapplied? Are the components and aspects first-class values at link time or run time (or neither)? What run time support is required (e.g., an ORB)? What is the inherent overhead of the implementation? How does the underlying programming language affect the design decisions? How do the properties of the concerns being addressed drive the design decisions?

The possible goals of this discussion group are (1) to familiarize participants with the various existing systems, (2) start a taxonomy of the design choices involved in combining aspect- and component-based programming, (3) identify how specific kinds of concerns are well-supported (or not) by different design choices, and (4) identify opportunities for future work, such as unexplored points in the design space, concerns that are not well supported by existing systems, and combinations of concerns that are not well supported simultaneously.