On the impact of crosscutting concern projection on code measurement

Many concern metrics have been defined to quantify properties of crosscutting concerns, such as scattering, tangling, and dedication. To quantify these properties, concern metrics directly rely on the projection (assignment) of concerns into source code. Although concern identification tools have emerged over the last years, they are still rarely used in practice to support concern projection and, therefore, it is a task often performed manually. This means that the results of concern metrics are likely to be influenced by how accurately programmers assign concerns to code elements. Even though concern assignment is an important and long-standing problem in software engineering, its impact on accurate measures of crosscutting concerns has never been studied and quantified. This paper presents a series of 5 controlled experiments to quantify and analyse the impact of concern projection on crosscutting concern measures. A set of 80 participants from 4 different institutions projected 10 concern instances into the source code of two software systems. We analyse the accuracy of concern projections independently made by developers, and their impact on a set of 12 concern metrics. Our results suggest that: (i) programmers are conservative when projecting crosscutting concerns, (ii) all concern metrics suffer with such conservative behaviour, and (iii) fine-grained tangling measures are more sensitive to different concern projections than coarse-grained scattering metrics.

[1]  Arie van Deursen,et al.  An evaluation of clone detection techniques for crosscutting concerns , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[2]  Sven Apel,et al.  Measuring and Characterizing Crosscutting in Aspect-Based Programs: Basic Metrics and Case Studies , 2007, FASE.

[3]  Cláudio Sant'Anna,et al.  On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[4]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[5]  Mariano Ceccato,et al.  A qualitative comparison of three aspect mining techniques , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[6]  G.C. Murphy,et al.  Identifying, Assigning, and Quantifying Crosscutting Concerns , 2007, First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07).

[7]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.

[8]  Alfred V. Aho,et al.  Do Crosscutting Concerns Cause Defects? , 2008, IEEE Transactions on Software Engineering.

[9]  Cláudio Sant'Anna,et al.  On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study , 2007, ECOOP.

[10]  Swapna S. Gokhale,et al.  Quantifying the closeness between program components and features , 2000, J. Syst. Softw..

[11]  Martin P. Robillard,et al.  Representing concerns in source code , 2007, TSEM.

[12]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[13]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem , 1994, CACM.

[14]  Martin P. Robillard,et al.  ConcernMapper: simple view-based separation of scattered concerns , 2005, eclipse '05.

[15]  Mariano Ceccato,et al.  Measuring the Effects of Software Aspectization , 2004 .

[16]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[17]  Glenn Gamst,et al.  Analysis of Variance Designs: A Conceptual and Computational Approach with SPSS and SAS , 2008 .

[18]  Paulo Borba,et al.  Distribution and persistence as aspects , 2006 .

[19]  Cláudio Sant'Anna,et al.  Crosscutting patterns and design stability: An exploratory analysis , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[20]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[21]  João M. Fernandes,et al.  Towards a Catalogue of Refactorings and Code Smells for AspectJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[22]  Eduardo Figueiredo,et al.  Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics , 2009, SQM@CSMR.

[23]  Carlos José Pereira de Lucena,et al.  On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework , 2003, SBES.

[24]  Lori Pollock,et al.  An Empirical Study of the Concept Assignment Problem , 2007 .

[25]  Barbara A. Kitchenham,et al.  The role of replications in empirical software engineering—a word of warning , 2008, Empirical Software Engineering.

[26]  Carlos José Pereira de Lucena,et al.  Applying and Evaluating Concern-Sensitive Design Heuristics , 2009, 2009 XXIII Brazilian Symposium on Software Engineering.

[27]  David Coppit,et al.  Understanding concerns in software: insights gained from two case studies , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[28]  Eduardo Figueiredo,et al.  Early Crosscutting Metrics as Predictors of Software Instability , 2009, TOOLS.

[29]  Stéphane Ducasse,et al.  Distribution Map , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[30]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .