Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition

Composition as an approach to software construction has been of interest since at least the beginning of work on Module Interconnection Languages in the late 1970's. Most recently, research in aspect-oriented software development (AOSD) has exploited composition approaches that provide more flexible extension, adaptation and integration of components. A critical issue in composition is symmetry versus asymmetry. Most AOSD approaches have used an asymmetric paradigm, in which
“aspects” are composed (woven) into components that implement a "base" model; aspects and components are different, and component-component, aspect-aspect, and class-class composition are not supported. A symmetric paradigm, on the other hand, makes no distinction between components and aspects, and does not mandate a distinguished base model. The choice of symmetric versus asymmetric paradigm greatly affects the set of good software engineering properties promoted, and the set of software engineering activities facilitated. This paper analyzes the ramifications of the use of symmetric and asymmetric paradigms.

By: William H. Harrison, Harold L. Ossher, Peri L. Tarr

Published in: RC22685 in 2002


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to .