Investigating the effect of evolution and refactorings on feature scattering

The implementation of a functional requirement is often distributed across several modules posing difficulties to software maintenance. In this paper, we attempt to quantify the extent of feature scattering and study its evolution with the passage of software versions. To this end, we trace the classes and methods involved in the implementation of a feature, apply formal approaches for studying variations across versions, measure whether feature implementation is uniformly distributed and visualize the reuse among features. Moreover, we investigate the impact of refactoring application on feature scattering in order to assess the circumstances under which a refactoring might improve the distribution of methods implementing a feature. The proposed techniques are exemplified for various features on several versions of four open-source projects.

[1]  Denys Poshyvanyk,et al.  Feature location via information retrieval based filtering of a single scenario execution trace , 2007, ASE.

[2]  H. Dalton The Measurement of the Inequality of Incomes , 1920 .

[3]  Swapna S. Gokhale,et al.  Locating program features using execution slices , 1999, Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No.PR00122).

[4]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

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

[6]  Bogdan Dit,et al.  Feature location in source code: a taxonomy and survey , 2013, J. Softw. Evol. Process..

[7]  Oscar Nierstrasz,et al.  Consistent Layout for Thematic Software Maps , 2008, 2008 15th Working Conference on Reverse Engineering.

[8]  Emily Hill,et al.  Using natural language program analysis to locate and understand action-oriented concerns , 2007, AOSD.

[9]  Oscar Nierstrasz,et al.  Comparative analysis of evolving software systems using the Gini coefficient , 2009, 2009 IEEE International Conference on Software Maintenance.

[10]  T. Mens,et al.  Evidence for the Pareto principle in Open Source Software Activity , 2011 .

[11]  Cleland-HuangJane,et al.  Improving automated requirements trace retrieval , 2010 .

[12]  Lada A. Adamic,et al.  Power-Law Distribution of the World Wide Web , 2000, Science.

[13]  Rainer Koschke,et al.  On dynamic feature location , 2005, ASE.

[14]  Yann-Gaël Guéhéneuc,et al.  Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval , 2007, IEEE Transactions on Software Engineering.

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

[16]  Manuel Oriol,et al.  Objects, Components, Models and Patterns, 47th International Conference, TOOLS EUROPE 2009, Zurich, Switzerland, June 29-July 3, 2009. Proceedings , 2009, TOOLS.

[17]  Jane Cleland-Huang,et al.  Improving automated requirements trace retrieval: a study of term-based enhancement methods , 2010, Empirical Software Engineering.

[18]  Yvonne Coady,et al.  Sustainable System Infrastructure and Big Bang Evolution: Can Aspects Keep Pace? , 2005, ECOOP.

[19]  Magnus C. Ohlsson,et al.  Analysis and Interpretation , 2012 .

[20]  L. Beran,et al.  [Formal concept analysis]. , 1996, Casopis lekaru ceskych.

[21]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

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

[23]  Siraj Muhammad,et al.  Improved Similarity Measures for Software Clustering , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[24]  M. O. Lorenz,et al.  Methods of Measuring the Concentration of Wealth , 1905, Publications of the American Statistical Association.

[25]  Kultar Singh,et al.  Quantitative Social Research Methods , 2007 .

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

[27]  Stéphane Ducasse,et al.  Analyzing software evolution through feature views , 2006, J. Softw. Maintenance Res. Pract..

[28]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[29]  Andrian Marcus,et al.  An information retrieval approach to concept location in source code , 2004, 11th Working Conference on Reverse Engineering.

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

[31]  Alec Sharp Smalltalk by Example: The Developer's Guide , 1997 .

[32]  Denys Poshyvanyk,et al.  Combining Formal Concept Analysis with Information Retrieval for Concept Location in Source Code , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[33]  Wei Zhao,et al.  SNIAFL: towards a static non-interactive approach to feature location , 2004, Proceedings. 26th International Conference on Software Engineering.

[34]  Cecília M. F. Rubira,et al.  Exceptions and aspects: the devil is in the details , 2006, SIGSOFT '06/FSE-14.

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

[36]  Wei Zhao,et al.  Understanding how the requirements are implemented in source code , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[37]  H. Gall,et al.  MDS-Views : Visualizing Problem Report Data of Large Scale Software using Multidimensional Scaling ∗ , 2003 .

[38]  Giuliano Antoniol,et al.  Recovering Traceability Links between Code and Documentation , 2002, IEEE Trans. Software Eng..

[39]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[40]  Stéphane Ducasse,et al.  Analyzing software evolution through feature views: Research Articles , 2006 .

[41]  C. Tappert,et al.  A Survey of Binary Similarity and Distance Measures , 2010 .

[42]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[43]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[44]  Mircea Trifu,et al.  Tool-supported identification of functional concerns in object-oriented code , 2010 .

[45]  Denys Poshyvanyk,et al.  Using structural and textual information to capture feature coupling in object-oriented software , 2011, Empirical Software Engineering.

[46]  Chun-Houh Chen,et al.  Handbook of Data Visualization (Springer Handbooks of Computational Statistics) , 2008 .

[47]  Andrian Marcus,et al.  Recovering documentation-to-source-code traceability links using latent semantic indexing , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[48]  Bernhard Ganter,et al.  Formal Concept Analysis , 2013 .

[49]  Ali Shokoufandeh,et al.  On Computing the Canonical Features of Software Systems , 2006, 2006 13th Working Conference on Reverse Engineering.

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

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

[52]  Fiona Steele,et al.  The Analysis and Interpretation of Multivariate Data for Social Scientists , 2002 .