@. Comp, ? mod(c) is the module m of a class c. ? first(c) is the version in which class c was originally inserted in the repository

. Depscarate, the ratio between (i) the number of classes in component cp that have a dependency of type t with a target class c and (ii) the total number of classes in component cp, as follows: DepScaRate(c, t, cp) = |DepCompClass(c, p.|ClassComp

C. Ithoutdep, cp) is the set of classes of a component cp that were committed in the repository for the first time without a dependency of type t with a target class c, as defined next: CreatedW ithoutDep(c, t, cp) =

. Depadd, is the set of classes in component cp initially created without a dependency of type t with a target class c but that later were maintained to include this dependency, as follows: DepAdd(c, t, cp) = { x ? CreatedW ithoutDep(c, t, cp) | depends

. Depinsrate, the ratio between (i) the number of classes in the component cp originally created without a dependency of type t with a target class c, but that have this dependency in the last version of the system under analysis, and (ii) the total number of classes in component cp originally created without a dependency of type t with class c, as follows

. Finally, the candidates for absences in a component cp are defined as follows: Absences(cp) = { (x, c, t) | comp(x) = cp ? ¬depends

J. E. Araujo, S. Souza, and M. Valente, Study on the relevance of the warnings reported by Java bug-finding tools, IET Software, vol.5, issue.4, pp.366-374, 2011.
DOI : 10.1049/iet-sen.2009.0083

R. Baeza-yates and B. Ribeiro-neto, Modern Information Retrieval: The Concepts and Technology Behind Search, 2011.

R. Bittencourt, Enabling Static Architecture Conformance Checking of Evolving Software, 2012.

J. Brunet, D. Guerreiro, and J. Figueiredo, Structural conformance checking with design tests: An evaluation of usability and calability, 2011 27th IEEE International Conference on Software Maintenance (ICSM), pp.143-152, 2011.
DOI : 10.1109/ICSM.2011.6080781

J. Brunet, G. C. Murphy, D. Serey, and J. Figueiredo, Five Years of Software Architecture Checking: A Case Study of Eclipse, IEEE Software, vol.32, issue.5, pp.1-6, 2014.
DOI : 10.1109/MS.2014.106

S. Ducasse, N. Anquetil, M. U. Bhatti, A. Hora, J. Laval et al., MSE and FAMIX 3.0: an Interexchange Format and Source Code Model Family, RMOD -INRIA Lille -Nord Europe, Software Composition Group -SCG, 2011.
URL : https://hal.archives-ouvertes.fr/hal-00646884

S. Ducasse and D. Pollet, Software Architecture Reconstruction: A Process-Oriented Taxonomy, IEEE Transactions on Software Engineering, vol.35, issue.4, pp.573-591, 2009.
DOI : 10.1109/TSE.2009.19

URL : https://hal.archives-ouvertes.fr/inria-00498407

M. Eichberg, S. Kloppenburg, K. Klose, and M. Mezini, Defining and continuous checking of structural program dependencies, Proceedings of the 13th international conference on Software engineering , ICSE '08, pp.391-400, 2008.
DOI : 10.1145/1368088.1368142

M. Fowler, Patterns of Enterprise Application Architecture, 2002.

M. Hammad, M. L. Collard, and J. I. Maletic, Automatically identifying changes that impact code-to-design traceability, 2009 IEEE 17th International Conference on Program Comprehension, pp.20-29, 2009.
DOI : 10.1109/ICPC.2009.5090024

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.159.5171

C. Richard and . Holt, Structural manipulations of software architecture using tarski relational algebra, 5th Working Conference on Reverse Engineering (WCRE), pp.210-219, 1998.

A. Hora, N. Anquetil, S. Ducasse, and M. Valente, Mining system specific rules from change patterns, 2013 20th Working Conference on Reverse Engineering (WCRE), pp.1-10, 2013.
DOI : 10.1109/WCRE.2013.6671308

URL : https://hal.archives-ouvertes.fr/hal-00854861

D. Hou and H. J. Hoover, Using SCL to specify and check design intent in source code, IEEE Transactions on Software Engineering, vol.32, issue.6, pp.404-423, 2006.
DOI : 10.1109/TSE.2006.60

D. Hovemeyer and W. Pugh, Finding bugs is easy, ACM SIGPLAN Notices, vol.39, issue.12, pp.92-106, 2004.
DOI : 10.1145/1052883.1052895

S. C. Johnson, Lint: A C program checker, 1977.

S. Kim and M. D. Ernst, Which warnings should I fix first?, Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering , ESEC-FSE '07, pp.45-54, 2007.
DOI : 10.1145/1287624.1287633

S. Kim, K. Pan, E. E. James-whitehead, and J. , Memories of bug fixes, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering , SIGSOFT '06/FSE-14, pp.35-45, 2006.
DOI : 10.1145/1181775.1181781

J. Knodel and D. Popescu, A Comparison of Static Architecture Compliance Checking Approaches, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07), p.12, 2007.
DOI : 10.1109/WICSA.2007.1

R. Koschke, Incremental reflexion analysis, 14th European Conference on Software Maintenance and Reengineering (CSMR), pp.1-10, 2010.
DOI : 10.1109/csmr.2010.10

R. Koschke and D. Simon, Hierarchical reflexion models, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings., pp.36-45, 2003.
DOI : 10.1109/WCRE.2003.1287235

J. R. Larus, T. Ball, M. Das, R. Deline, M. Fahndrich et al., Righting software, IEEE Software, vol.21, issue.3, pp.92-100, 2004.
DOI : 10.1109/MS.2004.1293079

B. Livshits and T. Zimmermann, DynaMine: finding common error patterns by mining software revision histories, 13th International Symposium on Foundations of Software Engineering (FSE), pp.296-305, 2005.

C. Maffort, M. T. Valente, N. Anquetil, A. Hora, and M. Bigonha, Heuristics for discovering architectural violations, 2013 20th Working Conference on Reverse Engineering (WCRE), pp.222-231, 2013.
DOI : 10.1109/WCRE.2013.6671297

URL : https://hal.archives-ouvertes.fr/hal-00854871

C. Maffort, M. T. Valente, and M. Bigonha, André Hora, and Nicolas Anquetil. Mining architectural patterns using association rules, 25th International Conference on Software Engineering and Knowledge Engineering (SEKE), pp.375-380, 2013.

K. Mens and A. Kellens, Co-evolving code and design with intensional views, Computer Languages, Systems & Structures, vol.32, issue.2-3, pp.140-156, 2006.
DOI : 10.1016/j.cl.2005.09.002

Y. Momchilova-mileva, A. Wasylkowski, and A. Zeller, Mining evolution of object usage, 25th European conference on Object-oriented programming, pp.105-129, 2011.

G. Murphy, D. Notkin, and K. Sullivan, Software reflexion models: Bridging the gap between source and high-level models, 3rd Symposium on Foundations of Software Engineering (FSE), pp.18-28, 1995.

G. Murphy, D. Notkin, and K. J. Sullivan, Software reflexion models: bridging the gap between design and implementation, IEEE Transactions on Software Engineering, vol.27, issue.4, pp.364-380, 2001.
DOI : 10.1109/32.917525

H. A. Tung-thanh-nguyen, N. H. Nguyen, J. Pham, T. N. Al-kofahi, and . Nguyen, Recurring bug fixes in object-oriented programs, 32nd International Conference on Software Engineering (ICSE), pp.315-324, 2010.

O. Nierstrasz, S. Ducasse, and T. G??rbag??rba, The story of moose: an agile reengineering environment, European software engineering conference held jointly with the ACM SIGSOFT international symposium on Foundations of software engineering, ESEC/FSE-13, pp.1-10, 2005.

F. Palomba, G. Bavota, M. Di-penta, R. Oliveto, A. D. Lucia et al., Detecting bad smells in source code using change history information, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp.268-278, 2013.
DOI : 10.1109/ASE.2013.6693086

L. Passos, R. Terra, R. Diniz, M. T. Valente, and N. Mendonca, Static Architecture-Conformance Checking: An Illustrative Overview, IEEE Software, vol.27, issue.5, pp.82-89, 2010.
DOI : 10.1109/MS.2009.117

D. E. Perry and A. L. Wolf, Foundations for the study of software architecture, ACM SIGSOFT Software Engineering Notes, vol.17, issue.4, pp.40-52, 1992.
DOI : 10.1145/141874.141884

S. Sarkar, G. Maskeri, and S. Ramachandran, Discovery of architectural layers and measurement of layering violations in source code, Journal of Systems and Software, vol.82, issue.11, pp.1891-1905, 2009.
DOI : 10.1016/j.jss.2009.06.039

S. Sarkar, S. Ramachandran, G. S. Kumar, M. K. Iyengar, K. Rangarajan et al., Modularization of a Large-Scale Business Application: A Case Study, IEEE Software, vol.26, issue.2, pp.28-35, 2009.
DOI : 10.1109/MS.2009.42

L. Silva, M. T. Valente, and M. Maia, Assessing modularity using co-change clusters, Proceedings of the 13th international conference on Modularity, MODULARITY '14, pp.49-60, 2014.
DOI : 10.1145/2577080.2577086

R. Terra and M. Valente, A dependency constraint language to manage object-oriented software architectures. Software: Practice and Experience, pp.1073-1094, 2009.

R. Terra, M. T. Valente, K. Czarnecki, and R. Bigonha, Recommending Refactorings to Reverse Software Architecture Erosion, 2012 16th European Conference on Software Maintenance and Reengineering, pp.335-340, 2012.
DOI : 10.1109/CSMR.2012.40

R. Terra, M. T. Valente, K. Czarnecki, and R. S. Bigonha, A recommendation system for repairing violations detected by static architecture conformance checking. Software: Practice and Experience, pp.1-36, 2013.