Although aspect-oriented programming is becoming popular, support for the independent description of aspect designs and for the incremental design of aspects themselves has been neglected. A conceptual framework for the design of aspects is presented, where aspects are viewed as augmentations that map an existing design into a new one with changes or additions. The principles of a Concern Architecture model are defined both to group designs of aspects, and to make explicit their dependencies and potential interferences in the design of a system with multiple aspects. The aspects are described generically, where any design element can be either required or provided. The required elements resemble formal parameters, and their binding to an existing design shows the context in which the provided parts are to modify that design. Overlap and a partial order among aspects and concerns are visualized in a Concern Architecture Diagram. An instantiation of the ideas as a UML profile is outlined, and the design of a digital sound recorder is used to demonstrate the utility of the approach.
['Mika Katara', 'Shmuel Katz']
A concern architecture view for aspect-oriented software design