Chapter 19. Generic Aspect-Oriented Design with Theme/UMLSIOBHÁN CLARKE AND ROBERT J. WALKER Requirements such as distribution or tracing have an impact on multiple classes in a system. Their support is, by necessity, scattered across those multiple classes. A look at an individual class may also show support for such crosscutting requirements (or aspects) 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 crosscutting requirements are present. This chapter presents a means to mitigate these problems with Theme/UML. Theme/UML is an extension to standard UML to support the modularization of designs into "themes." A theme is any feature, concern, or requirement of interest that must be handled in the system. This chapter focuses on themes that provide a design for behavior that crosscuts other behavior in the design. This chapter also demonstrates how crosscutting themes map to AspectJ and Hyper/J, two implementation approaches that provide a solution for separation of crosscutting requirements in source code. This mapping serves to illustrate that separation of aspects may be maintained throughout the software lifecycle. |