J. Gosling, B. Joy, G. L. Steele, G. Bracha, and A. Buckley, The Java Language Specification, 2014.

E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, 1995.

M. Fowler, Public versus published interfaces, IEEE Software, vol.19, issue.2, pp.18-19, 2002.

J. Bansiya and C. Davis, A hierarchical model for object-oriented design quality assessment, IEEE Transactions on Software Engineering, vol.28, issue.1, pp.4-17, 2002.

M. Fowler, Refactoring: Improving the Design of Existing Code, 2018.

S. Rufiange and C. P. Fuhrman, Visualizing protected variations in evolving software designs, Journal of Systems and Software, vol.88, pp.231-249, 2014.

D. L. Parnas, On the criteria to be used in decomposing systems into modules, CACM, vol.15, issue.12, pp.1053-1058, 1972.

C. Larman, Protected variation: The importance of being closed, Software, IEEE, vol.18, issue.3, pp.89-91, 2001.

B. Meyer, Object-oriented Software Construction, 1988.

M. Fowler, Inversion of control containers and the dependency injection pattern, 2004.

B. Ellis, J. Stylos, and B. Myers, The factory pattern in API design: A usability evaluation, 29th International Conference on Software Engineering (ICSE'07), pp.302-312, 2007.

M. M. Geipel and F. Schweitzer, The link between dependency and cochange: Empirical evidence, IEEE Transactions on Software Engineering, vol.38, issue.6, pp.1432-1444, 2012.

N. Ajienka and A. Capiluppi, Understanding the interplay between the logical and structural coupling of software classes, Journal of Systems and Software, vol.134, pp.120-137, 2017.

H. Kagdi, M. Gethers, and D. Poshyvanyk, Integrating conceptual and logical couplings for change impact analysis in software, Empirical Software Engineering, vol.18, issue.5, pp.933-969, 2013.

C. Bird, P. C. Rigby, E. T. Barr, D. J. Hamilton, D. M. German et al., The promises and perils of mining git, Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories, ser. MSR '09, pp.1-10, 2009.

S. Ducasse, N. Anquetil, U. Bhatti, A. Hora, J. Laval et al., MSE and FAMIX 3.0: an Interexchange Format and Source Code Model Family, 2011.
URL : https://hal.archives-ouvertes.fr/hal-00646884

H. Abdeen, H. Sahraoui, and O. Shata, How we design interfaces, and how to assess it, 2013 IEEE International Conference on Software Maintenance, pp.80-89, 2013.
URL : https://hal.archives-ouvertes.fr/hal-00875387

A. Sabané, Y. Guéhéneuc, V. Arnaoudova, and G. Antoniol, Fragile base-class problem, problem?, Empirical Software Engineering, vol.22, issue.5, pp.2612-2657, 2017.