Early Crosscutting Metrics as Predictors of Software Instability José M. Conejero 1 , Eduardo Figueiredo 2 , Alessandro Garcia 3 , Juan Hernández 1 , and Elena Jurado 1 1 Quercus Software Engineering Group, University of Extremadura, Spain 2 Computing Department, Lancaster University, United Kingdom 3 Informatics Department, Pontifical Catholic University of Rio de Janeiro, Brazil {chemacm, juanher, elenajur}@unex.es, e.figueiredo@lancaster.ac.uk, afgarcia@inf.puc-rio.br Abstract. Many researchers claim that crosscutting concerns, which emerge in early software development stages, are harmful to software stability. On the other hand, there is a lack of effective metrics that allow software developers to understand and predict the characteristics of “early” crosscutting concerns that lead to software instabilities. In general, existing crosscutting metrics are defined for specific programming languages and have been evaluated only against source-code analysis, when major design decisions have already been made. This paper presents a generic suite of metrics to objectively quantify key crosscutting properties, such as scattering and tangling. The definition of the metrics is agnostic to particular language intricacies and can be applied to all early software development artifacts, such as usecases and scenarios. We have performed a first stability study of crosscutting on requirements documents. The results pointed out that early scattering and crosscutting have, in general, a strong correlation with major software instabilities and, therefore, can help developers to anticipate important decisions regarding stability at early stages of development. Keywords: Concern Metrics, Modularity, Stability, Requirements Engineering. 1 Introduction There is growing empirical evidence that software stability is often inversely proportional to the presence of crosscutting concerns [8, 9, 12, 13]. A software system is stable if, when observed over two or more versions of the software, the differences between its quality measures are insignificant [14]. It is claimed that crosscutting concerns often lead to harmful software instabilities, such as increased modularity anomalies [9, 13] and higher number of introduced faults [8]. The problem of crosscutting concerns is usually described in terms of scattering and tangling [3]. Scattering occurs when the realization of a concern is spread over the software