Skip to main content

Evolution of Feature-Oriented Software: How to Stay on Course and Avoid the Cliffs of Modularity Drift

  • Conference paper
  • First Online:
Book cover Software Technologies (ICSOFT 2014)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 555))

Included in the following conference series:

Abstract

With time software systems easily become obsolete if not updated to reflect the ever-changing needs of their users. This update process is far from trivial as each feature is not necessarily captured by a single module, but rather scattered across a number of different modules. The situation is further aggravated by the fact that a module can encompass a number of different features. Our goal is to measure and evaluate how easy it is to trace back and update a given piece of software based on its modularity. Modularity is known as the degree to which a system’s components may be separated and recombined. The approach that we propose is based on the idea of using relative, as opposed to absolute, modularity metrics that measure the distance between the actual metric values for a given source code and their values achievable for the source code’s ideally modularized counterpart. The approach, termed modularization compass, computes the modularity drift by optimizing the feature-oriented modularization of source code based on traceability links between features and source code. The optimized modularizations are created automatically by transforming the groupings of classes into packages, which is guided by a multi-objective grouping genetic algorithm. The proposed approach was evaluated by application to long-term release histories of three open-source Java applications.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Kemerer, C.F.: Software complexity and software maintenance: a survey of empirical research. Ann. Softw. Eng. 1, 1–22 (1995)

    Article  Google Scholar 

  2. Reid Turner, C., Fuggetta, A., Lavazza, L., Wolf, A.L.: A conceptual basis for feature engineering. J. Syst. Softw. 49, 3–15 (1999)

    Article  Google Scholar 

  3. Harrison, W., Box, P.: N degrees of separation: multi-dimensional separation of concerns. In: Proceedings of the 21st International Conference on Software Engineering (CSE 1999), pp. 10.00 (1999)

    Google Scholar 

  4. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 1053–1058 (1972)

    Article  Google Scholar 

  5. Letovsky, S.S.: Delocalized plans and program comprehension. Software, IEEE 3, 41–49 (1986)

    Article  Google Scholar 

  6. Eaddy, M., Zimmermann, T., Sherwood, K.D., Garg, V., Murphy, G.C., Nagappan, N., Aho, A.V.: Do crosscutting concerns cause defects? IEEE Trans. Software Eng. 34, 497–515 (2008)

    Article  Google Scholar 

  7. Rugaber, S., Stirewalt, K., Wills, L.M.: The interleaving problem in program understanding. In: Proceedings of 2nd Working Conference on Reverse Engineering, pp. 166–175. IEEE (1995)

    Google Scholar 

  8. Benestad, H.C., Anda, B., Arisholm, E.: Understanding cost drivers of software evolution: a quantitative and qualitative investigation of change effort in two evolving software systems. Empirical Softw. Eng. 15, 166–203 (2010)

    Article  Google Scholar 

  9. Hsi, I., Potts, C.: Studying the evolution and enhancement of software features. In: Proceedings of International Conference on Software Maintenance, pp. 143–151. IEEE, (2000)

    Google Scholar 

  10. Fischer, M., Gall, H.: Visualizing feature evolution of large-scale software based on problem and modification report data. J. Softw. Maintenance Evol. Res. Pract. 16, 385–403 (2004)

    Article  Google Scholar 

  11. Hou, D., Wang, Y.: An empirical analysis of the evolution of user-visible features in an integrated development environment. In: Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research, pp. 122–135. IBM Corp. (2009)

    Google Scholar 

  12. Greevy, O., Ducasse, S., Girba, T.: Analyzing feature traces to incorporate the semantics of change in software evolution analysis. In: Proceedings of the 21st IEEE International Conference on Software Maintenance, ICSM 2005, pp. 347–356. IEEE (2005)

    Google Scholar 

  13. Olszak, A., Jørgensen, B.N.: Remodularizing Java programs for improved locality of feature implementations in source code. Sci. Comput. Program. 77, 131–151 (2012)

    Article  MATH  Google Scholar 

  14. van den Berg, K., Conejero, J.M., Hernández, J.: Analysis of crosscutting across software development phases based on traceability. In: Proceedings of the 2006 International Workshop on Early Aspects at ICSE, pp. 43–50. ACM (2006)

    Google Scholar 

  15. Brcina, R., Riebisch, M.: Architecting for evolvability by means of traceability and features. In: 23rd IEEE/ACM International Conference on Automated Software Engineering-Workshops, ASE Workshops 2008, pp. 72–81. IEEE (2008)

    Google Scholar 

  16. Wilde, N., Gomez, J.A., Gust, T., Strasburg, D.: Locating user functionality in old code. In: Proceedings Conference on Software Maintenance 1992, pp. 200–205. IEEE (1992)

    Google Scholar 

  17. Lehman, M.M.: Programs, life cycles, and laws of software evolution. Proc. IEEE 68, 1060–1076 (1980)

    Article  Google Scholar 

  18. Murphy, G.C., Lai, A., Walker, R.J., Robillard, M.P.: Separating features in source code: an exploratory study. In: Proceedings of the 23rd International Conference on Software Engineering, pp. 275–284. IEEE Computer Society (2001)

    Google Scholar 

  19. Briand, L.C., Daly, J.W., Wüst, J.: A unified framework for cohesion measurement in object-oriented systems. Empirical Softw. Eng. 3, 65–117 (1998)

    Article  Google Scholar 

  20. Briand, L.C., Daly, J.W., Wust, J.K.: A unified framework for coupling measurement in object-oriented systems. IEEE Trans. Software Eng. 25, 91–121 (1999)

    Article  Google Scholar 

  21. Harman, M., Tratt, L.: Pareto optimal search based refactoring at the design level. In: Proceedings of the 9th Annual Conference on Genetic and Evolutionary Computation, pp. 1106–1113. ACM (2007)

    Google Scholar 

  22. Seng, O., Bauer, M., Biehl, M., Pache, G.: Search-based improvement of subsystem decompositions. In: Proceedings of the 2005 Conference on Genetic and Evolutionary Computation, pp. 1045–1051. ACM (2005)

    Google Scholar 

  23. Tzerpos, V., Holt, R.C.: ACDC: an algorithm for comprehension-driven clustering. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 258–258. IEEE Computer Society (2000)

    Google Scholar 

  24. Rosenman, M., Gero, J.: Reducing the Pareto optimal set in multicriteria optimization (with applications to Pareto optimal dynamic programming). Engineering Optimization 8, 189–206 (1985)

    Article  Google Scholar 

  25. Chaudhari, P., Dharaskar, R., Thakare, V.: Computing the most significant solution from Pareto front obtained in multi-objective evolutionary. Int. J. Adv. Comput. Sci. Appl. (IJACSA) 1, 63–68 (2010)

    Google Scholar 

  26. Olszak, A., Jørgensen, B.N.: Featureous: an integrated environment for feature-centric analysis and modification of object-oriented software. Int. J. Comput. Sci. Inf. Syst. 6, 58–75 (2011)

    Google Scholar 

  27. http://featureous.org/

  28. http://recoder.sourceforge.net/

  29. http://fifesoft.com/rtext/

  30. http://freemind.sourceforge.net/

  31. http://www.jhotdraw.org/

  32. Anton, A.I., Potts, C.: Functional paleontology: the evolution of user-visible system services. IEEE Trans. Software Eng. 29, 151–166 (2003)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Andrzej Olszak .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Olszak, A., Lazarova-Molnar, S., Jørgensen, B.N. (2015). Evolution of Feature-Oriented Software: How to Stay on Course and Avoid the Cliffs of Modularity Drift. In: Holzinger, A., Cardoso, J., Cordeiro, J., Libourel, T., Maciaszek, L., van Sinderen, M. (eds) Software Technologies. ICSOFT 2014. Communications in Computer and Information Science, vol 555. Springer, Cham. https://doi.org/10.1007/978-3-319-25579-8_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-25579-8_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-25578-1

  • Online ISBN: 978-3-319-25579-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics