Skip to main content
Log in

Investigating the effect of evolution and refactorings on feature scattering

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

References

  • Antoniol, G., Canfora, G., Casazza, G., De Lucia, A., & Merlo, E. (2002). Recovering traceability links between code and documentation. IEEE Transactions on Software Engineering, 28(10), 970–983.

    Article  Google Scholar 

  • Barabasi, A. L., Albert, R., Jeong, H., & Bianconi, G. (2000). Power-law distribution of the World Wide Web. Science, 287, 2115.

    Article  Google Scholar 

  • Bartholomew, D.J., Steele, F., Moustaki, I., and Galbraith, J. (2008). The Analysis and Interpretation of Multivariate Data for Social Scientists, Chapman and Hall/CRC.

  • Biggerstaff, T. J., Mitbander, B. G., & Webster, D. E. (1994). Program understanding and the concept assignment problem. Communications of the ACM, 37(5), 72–82.

    Article  Google Scholar 

  • Chen, C. C., Hardle, W., Unwin, A., Cox, M., & Cox, T. F. (2008). Handbook of data visualization. Heidelberg: Springer Berlin Heidelberg.

    MATH  Google Scholar 

  • Choi, S–. S., Cha, S.-H., & Tappert, C. C. (2010). A survey of Binary similarity and distance measures. Journal of Systemics, Cybernetics and Informatics, 8(1), 43–48.

    Google Scholar 

  • Conejero, J. M., Figueiredo, E., Garcia, A., Hernández, J., & Jurado, E. (2009). Early crosscutting metrics as predictors of software instability. Objects, Components, Models and Patterns. Lecture Notes in Business Information Processing, 33(3), 136–156.

    Article  Google Scholar 

  • Dit, B., Revelle, M., Gethers, M., & Poshyvanyk, D. (2011). Feature Location in Source Code: A Taxonomy and Survey. Journal of Software Maintenance and Evolution: Research and Practice, published online: 28 November 2011, Early Access.

  • Eaddy, M., Aho, A. V., & Murphy, G.C. (2007). Identifying, assigning, and quantifying crosscutting concerns. In Proceedings of the Workshop Assessment of Contemporary Modularization Techniques.

  • Eaddy, M., Zimmermann, T., Sherwood, K. D., Garg, V., Murphy, G. C., Nagappan, N., et al. (2008). Do crosscutting concerns cause defects? IEEE Transactions on Software Engineering, 34(4), 497–515.

    Article  Google Scholar 

  • Eisenbarth, T., Koschke, R., & Simon, D. (2003). Locating features in source code. IEEE Transactions on Software Engineering, 29(3), 210–224.

    Article  Google Scholar 

  • Filho, F.C., Cacho, N., Figueiredo, E., Maranhão, R., Garcia, A., & Rubira, C. M. F. (2006). Exceptions and aspects: The devil is in the details. In Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, 152–162.

  • Fisher, M., & Gall, H. (2003). MDS-Views: Visualizing problem report data of large scale software using multidimensional scaling. In Proceedingsof the Large-scale Industrial Software Evolution Workshop (ICSM 2013), 110–122.

  • Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring improving the design of existing code. MA: Addison-Wesley.

    Google Scholar 

  • Ganter, B., & Wille, R. (1996). Formal concept analysis. Berlin: Springer-Verlag.

    MATH  Google Scholar 

  • Garcia, A., Sant’Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., & von Staa, A. (2005). Modularizing design patterns with aspects: A quantitative study. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development, 3–14.

  • Gibbs, C., Robin Liu, C., & Coady, Y. (2005). Sustainable system infrastructure and big band evolution: Can aspects keep pace?. In Proceedings of the 19th European Conference on Object-Oriented Programming, 241–261.

  • Gini, C. (1921). Measurement of inequality of incomes. The Economic Journal, 31(121), 124–126.

    Article  Google Scholar 

  • Goeminne, M., & Mens, T. (2011). Evidence for the pareto principle in open source software activity. In the Joint Porceedings of the 1st International workshop on Model Driven Software Maintenance and 5th International Workshop on Software Quality and Maintainability, 74–82.

  • Gotel, O. C. Z., & Finkelstein, C. W. (1994). An Analysis of the requirements traceability problem. In Proceedings of the 1st International Conference on Requirements Engineering, 94–101.

  • Greenwood P., Bartolomei, T., Figueiredo, E., Dosea, M., Garcia, A., Cacho, N., Sant’Anna, C., Soares, S., Borba, P., Kulesza, U., & Rashid, A. (2007). On the impact of aspectual decompositions on design stability: An empirical study. In Proceedings of the 21st European Conference on Object-Oriented Programming, 176–200.

  • Greevy, O., Ducasse, S., & Girba, T. (2006). Analyzing software evolution through feature views. Journal of Software Maintenance and Evolution: Research and Practice, 18(6), 425–456.

    Article  Google Scholar 

  • JProfiler: An all-purpose Java profiling suite. http://www.ej-technologies.com/products/jprofiler/overview.html, October 2011.

  • JDeodorant, http://www.jdeodorant.com, October 2011.

  • jEdit—programmer’s text editor, http://www.jedit.org, August 2012.

  • JFreeChart, http://www.jfree.org/jfreechart, October 2011.

  • Jmol: An open-source Java viewer for chemical structures in 3D. http://www.jmol.org, August 2012.

  • Koschke, R., & Quante, J. (2005). On dynamic feature location. In Proceedings of the 20th IEEE/ACM International Conference on Automated software engineering, 86–95.

  • Kothari, J., Denton, T., Mancoridis, S., & Shokoufandeh, A. (2006). On computing the canonical features of software systems. In Proceedings of the 13th Working Conference on Reverse Engineering, 93–102.

  • Kuhn, A., Loretan, P., Nierstrasz, O. (2008). Consistent Layout for Thematic Software Maps. In Proceedings of the 15th Working Conference on Reverse Engineering, 209–218.

  • Liu, D., Marcus, A., Poshyvanyk, D., & Rajlich, V. (2007). Feature location via information retrieval based filtering of a single scenario execution trace. In Proceedings of the 22nd International Conference on Automated Software Engineering, 234–243.

  • Lorenz, M. O. (1905). Methods of measuring the concentration of wealth. Publications of the American Statistical Association, 9(70), 209–219.

    Article  Google Scholar 

  • Marcus, A., & Maletic, J. I. (2003). Recovering documentation-to-source-code traceability links using latent semantic indexing. In Proceedings of the 25th International Conference on Software Engineering, 125–136.

  • Marcus, A., Sergeyev, A., Rajlich, V., & Maletic, J. I. (2004). An information retrieval approach to concept location in source code. In Proceedings of the 11th Working Conference on Reverse Engineering, 214–223.

  • Naseem, R., Maqbool, O., & Muhammad, D. (2011). Improved similarity measures for software clustering. In Proceedings of the 15th European Conference on Software Maintenance and Reengineering, 45–54.

  • Poshyvanyk, D., & Marcus, A. (2007). Combining formal concept analysis with information retrieval for concept location in source code. In Proceedings of the 15th International Conference on Program Comprehension, 37–48.

  • Poshyvanyk, D., Guéhéneuc, Y.-G., Marcus, A., Antoniol, G., & Rajlich, V. (2007). Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval. IEEE Transactions on Software Engineering, 33(6), 420–432.

    Article  Google Scholar 

  • Revell, M., Gethers, M., & Poshyvanyk, D. (2011). Using structural and textual information to capture feature coupling in object-oriented software. Empirical Software Engineering, 16(6), 773–811.

    Article  Google Scholar 

  • Riel, A. J. (1996). Object-oriented design heuristics. MA: Addison-Wesley.

    Google Scholar 

  • Robillard, M. P., & Murphy, G. C. (2007). Representing Concerns in Source Code. ACM Transactions on Software Engineering and Methodology, 16(1), 1–38.

    Google Scholar 

  • Sharp, A. (1997). Smalltalk by Example: The developers Guide. Mcgraw-Hill.

  • Shepherd, D., Fry, Z. P., Hill, E., Pollock, L., & Vijay-Shanker, K. (2007). Using natural language program analysis to locate and understand action-oriented concerns, In Proceedings of the 6th International Conference on Aspect-Oriented software development, 212–224.

  • Simpson, G. G. (1960). Notes on the measurement of faunal resemblance. American Journal of Science, 258(A), 300–311.

    Google Scholar 

  • Singh, K. (2007). Quantitative social research methods. California: Sage Publications.

    Google Scholar 

  • Trifu, M. (2010). Tool-supported identification of functional concerns in object-oriented code. PhD thesis, Karlsruhe Institute of Technology.

  • Vasa, R., Lumpe, M., Branch, P., & Nierstrasz, O. (2009). Comparative Analysis of evolving software systems using the Gini coefficient. In Proceedings of the 25th International Conference on Software Maintenance, 179–188.

  • Wilde, N., & Scully, M. C. (1995). Software reconnaissance: Mapping program features to code. Software Maintenance: Research and Practice, 7, 49–62.

    Article  Google Scholar 

  • Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., & Wesslén, A. (2000). Experimentation in software engineering. An introduction. The Netherlands: Kluwer Academic Publishers.

    Book  MATH  Google Scholar 

  • Wong, W. E., Gokhale, S. S., Horgan, J. R., & Trivedi, K. S. (1999). Locating program features using execution slices. In Proceedings of the IEEE Symposium on Application-Specific Systems and Software Engineering & Technology, 194–203.

  • Wong, W. E., Gokhale, S. S., & Horgan, J. R. (2000). Quantifying the closeness between program components and features. Journal of Systems and Software—Special Issue on Software Maintenance, 54(2), 87–98.

    Google Scholar 

  • Zhao,W., Zhang, L.,Liu, Y., Luo, J., & Sun, J. (2003). Understanding How the Requirements Are Implemented in Source Code. In Proceedings of the 10th Asia-Pacific Software Engineering Conference, 68–77.

  • Zhao, W., Zhang, L.,Liu, Y., Sun, J., & Yang, F.(2004). SNIAFL: Towards a Static Non-Interactive Approach to Feature Location. In Proceedings of the 26th International Conference on Software Engineering, 293–303.

  • Zou, X., Settimi, R., & Cleland-Huang, J. (2009). Improving automated requirements trace retrieval: A study of term-based enhancement methods. Empirical Software Engineering, 15, 119–146.

    Article  Google Scholar 

Download references

Acknowledgments

This research has been co-financed by the European Union (European Social Fund—ESF) and Greek national funds through the Operational Program “Education and Lifelong Learning” of the National Strategic Reference Framework (NSRF)—Research Funding Program: Thalis—Athens University of Economics and Business—SOFTWARE ENGINEERING RESEARCH PLATFORM.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Theodore Chaikalis.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chaikalis, T., Chatzigeorgiou, A. & Examiliotou, G. Investigating the effect of evolution and refactorings on feature scattering. Software Qual J 23, 79–105 (2015). https://doi.org/10.1007/s11219-013-9204-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-013-9204-4

Keywords

Navigation