Maintainability is one of the most essential quality attributes as maintenance tasks consume a high proportion of the total effort spent in the software life cycle. A significant impediment to maintenance is the level of interconnection between modules. Crosscutting is a special kind of relationship that generates undesired non-syntactical interactions between modules, e.g. it has been observed that changeability and stability attributes are often negatively affected by the presence of crosscutting. However, most of the systematic studies about crosscutting concentrate on the analysis of source code, when architectural decisions have already been made and there is little or no knowledge about how characteristics of crosscutting concerns, observable in early artifacts, are correlated with maintainability. The goal of this paper is to understand how the presence of crosscutting concerns affects changeability and stability of software artifacts at requirements level. As the problem of crosscutting concerns is usually described in terms of scattering and tangling, the following main research question (MRQ) drove our research method:
MRQ: How do scattering, tangling and crosscutting affect the requirements maintainability?
To address this main research question, the following sub-questions (RQ1 RQ3) were considered and analyzed taking as case studies three Software Product Lines:
* Work supported in part by the European Commission grant IST-2-004349: European Network of Excellence on AOSD (AOSD-Europe), by Ministerio de Ciencia e Investigación from Spain under contract TIN2011-27340 and Gobierno de Extremadura (GR-10129) and European Regional Development Fund (ERDF).
adfa, p. 1, 2011. © Springer-Verlag Berlin Heidelberg 2011