Information Technology Reference
In-Depth Information
Analysis of Crosscutting in Early Software
Development Phases Based on Traceability
Klaas van den Berg 1 , José María Conejero 2 , and Juan Hernández 2
1 Software Engineering Group University of Twente
P.O. Box 217, 7500 AE Enschede, The Netherlands
k.g.vandenberg@ewi.utwente.nl
2 Quercus Software Engineering Group, University of Extremadura
Avda. de la Universidad s/n, 10071, Cáceres, Spain
{chemacm,juanher}@unex.es
Abstract. Crosscutting is usually described in terms of scattering and tangling.
However, the distinction between these three concepts is vague. Precise
definitions are mandatory for certain research areas such as the identification of
crosscutting concerns at phases of the software life cycle. We propose a
conceptual framework for crosscutting where crosscutting is defined in terms of
trace relations. The definition of crosscutting is formalized using linear algebra,
and represented with matrices and matrix operations. In this way, crosscutting
can be clearly distinguished from scattering and tangling. With this definition
and transitivity of trace relations, crosscutting can be identified and traced
through software development, also in early phases. We describe some
illustrative case studies to demonstrate the applicability of the analysis.
Keywords: aspect-oriented software development, traceability, scattering,
tangling, crosscutting, crosscutting concerns.
1 Introduction
In Aspect-Oriented Software Development (AOSD), crosscutting is usually described
in terms of scattering and tangling. However, the distinction between these concepts
is vague, sometimes leading to ambiguous statements and confusion, as stated in [20]:
.. the term “crosscutting concerns” is often misused in two ways: To talk about a
single concern, and to talk about concerns rather than representations of concerns.
Consider “synchronization is a crosscutting concern”: we don't know that
synchronization is crosscutting unless we know what it crosscuts. And there may be
representations of the concerns involved that are not crosscutting.
A precise definition of crosscutting is mandatory for the identification of
crosscutting concerns at any phase of the software life cycle. The earlier we identify
crosscutting concerns in software development, the easier we can cope with these
concerns and increase quality of software. In addition, the identification of
crosscutting concerns in different stages of software development makes it possible to
trace such concerns throughout the whole software development process.
 
Search WWH ::




Custom Search