[Publications] [Software Engineering Research Group] [Department of Computer Science] [University of British Columbia]
Composition Patterns: An Approach to Designing Reusable Aspects
Siobhán Clarke and
Robert J. Walker
In Proceedings of the 23rd International Conference
on Software Engineering (Toronto, Ontario, Canada;
12--19 May), pp. 5--14, 2001.
Abstract
Requirements such as distribution or tracing have an impact on
multiple classes in a system. They are cross-cutting requirements, or
aspects. Their support is, by necessity, scattered across
those multiple classes. A look at an individual class may also show
support for cross-cutting requirements tangled up with the core
responsibilities of that class. Scattering and tangling make
object-oriented software difficult to understand, extend and reuse.
Though design is an important activity within the software lifecycle
with well-documented benefits, those benefits are reduced when
cross-cutting requirements are present. This paper presents a means
to mitigate these problems by separating the design of cross-cutting
requirements into composition patterns. Composition patterns
require extensions to the UML, and are based on a combination of the
subject-oriented model for composing separate, overlapping designs,
and UML templates. This paper also demonstrates how composition
patterns map to one programming model that provides a solution for
separation of cross-cutting requirements in code aspect-oriented
programming. This mapping serves to illustrate that separation of
aspects may be maintained throughout the software lifecycle.
IEEE Copyright Notice: This material is presented to ensure
timely dissemination of scholarly and technical work. Copyright and
all rights therein are retained by authors or by other copyright
holders. All persons copying this information are expected to adhere
to the terms and constraints invoked by each author's copyright. In
most cases, these works may not be reposted without permission of the
copyright holder.
URL: |
http://www.cs.ubc.ca/labs/se/papers/2001/icse01-sfsc.html |
File: |
/pub/www/cs.ubc.ca/docs/labs/se/papers/2000/icse01-sfsc.html |