
ting concerns scattered throughout the software sys-
tem and which often result in code tangling problems.
Hence, our development approach is taking advantage
of aspect-oriented principles and constructs to facili-
tate the “in-time” flexible realization of supplemen-
tary requirements, not only at the programming level,
but as soon as the analysis begins.
This work-in-progress paper shows the relevance of
aspect-oriented development for these “non use-case
requirements”. Motivations, strategies and aspect-
oriented design solutions are presented. We propose
a design pattern for aspect weaving and explain our
methodology on a small case study.
Former Work
Various approaches have been proposed to intro-
duce aspect-oriented concepts into UML. Some of
them suggest adding aspect-oriented concepts di-
rectly in the meta-model (Suzuki and Yamamoto,
1999). Other achieve aspect-oriented modeling by
introducing a new profile in UML (Aldawud et al.,
2001). In (Clarke and Walker, 2001), elements are
decomposed into special packages to be later weaved
with others using composition relationships. Authors
in (Stein et al., 2002) propose a UML based design
language dedicated to the representation of AspectJ’s
specific constructs.
Closer to our view of modeling, Jacobson explains
in (Jacobson, 2003) how aspects can be modeled as
extension use cases and how the base concepts of
AOP have their equivalents in use case related ele-
ments. Our goal is to go further in this direction and to
show how UML can be put to work to guide and docu-
ment the development of aspect-oriented systems, es-
pecially those ones having to deal with supplemen-
tary requirements. We propose a modeling approach
based, on the current UML notation. Contrarily to
former solutions, few extensions are here required to
adapt UML to aspect-oriented analysis and design,
and those introduced are very natural.
2 ASPECT-ORIENTED
DEVELOPMENT OF
SUPPLEMENTARY
REQUIREMENTS
Use Case View
To illustrate our approach, we refer the reader to the
well-known ATM (Automated Teller Machine) exam-
ple. The ATM requires functionalities (logging, se-
curity, etc.) which can’t be formulated as standard
use cases for they are not main services but rather
common sub-fonctionalities required by them. Fig-
ure 1 gives an overview of these supplementary re-
quirements.
Table 1: Supplementary spec. for the ATM
Functionality :
- Logging : Log all deposit and withdraw trans-
actions to persistent storage on the central server.
- Security : Each access to an account requires
client authentication.
Reliability:
- Recoverability : If there is a failure, store and
forward operations in order to complete the trans-
action anyway and recover later on.
Performance : ...
As commonly agreed, use cases are not appropri-
ate to capture these quality goals, design constraints
or global requirements applicable to the whole sys-
tem application. The Supplementary Specifications
documents those requirements apart, for they would
otherwise be sparsely described in uses cases.
A better idea, however, consists in turning these
supplementary requirements into special use cases.
As mentioned in (Malan and Bredemeyer, 2001), non-
functional requirements are often “not specified in
time”, “compromised without attention to the trade-
offs involved”, and/or “specified in loose, fuzzy terms
that are open to wide ranging and subjective interpre-
tation”. Transforming supplementary requirements
into use cases, (thus describing the functionalities re-
alizing them), allows bringing them back to the high-
est ranking (i.e. use case level) and entails developers
to handle them in a more disciplined way.
extension point
logPointCut
extension point
logPointCut
<<aspect>>
Logging
Deposit
Transfer funds
Withdraw
<<extend>>(logPointCut)
<<extend>>(logPointCut)
Client
Figure 1: ATM logging expressed as a use case.
In the ATM example, the Logging supplementary
requirement can be turned into a use case, as shown
by Figure 1. To model the crosscutting behavior of
the Logging functionality and to show its insertion
into both use cases Deposit and Withdraw, the UML
« extend » relationship is used. Hence these base
use cases are implicitly modified, in a modular way, at
indicated extension points, and this, without them be-
ACHIEVING SUPPLEMENTARY REQUIREMENTS USING ASPECT-ORIENTED DEVELOPMENT
585