Skip to main content
Top

2015 | OriginalPaper | Chapter

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

Authors : Andrzej Olszak, Sanja Lazarova-Molnar, Bo Nørregaard Jørgensen

Published in: Software Technologies

Publisher: Springer International Publishing

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

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.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literature
1.
go back to reference Kemerer, C.F.: Software complexity and software maintenance: a survey of empirical research. Ann. Softw. Eng. 1, 1–22 (1995)CrossRef Kemerer, C.F.: Software complexity and software maintenance: a survey of empirical research. Ann. Softw. Eng. 1, 1–22 (1995)CrossRef
2.
go back to reference Reid Turner, C., Fuggetta, A., Lavazza, L., Wolf, A.L.: A conceptual basis for feature engineering. J. Syst. Softw. 49, 3–15 (1999)CrossRef Reid Turner, C., Fuggetta, A., Lavazza, L., Wolf, A.L.: A conceptual basis for feature engineering. J. Syst. Softw. 49, 3–15 (1999)CrossRef
3.
go back to reference 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) 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)
4.
go back to reference Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 1053–1058 (1972)CrossRef Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 1053–1058 (1972)CrossRef
5.
go back to reference Letovsky, S.S.: Delocalized plans and program comprehension. Software, IEEE 3, 41–49 (1986)CrossRef Letovsky, S.S.: Delocalized plans and program comprehension. Software, IEEE 3, 41–49 (1986)CrossRef
6.
go back to reference 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)CrossRef 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)CrossRef
7.
go back to reference 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) 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)
8.
go back to reference 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)CrossRef 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)CrossRef
9.
go back to reference 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) 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)
10.
go back to reference 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)CrossRef 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)CrossRef
11.
go back to reference 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) 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)
12.
go back to reference 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) 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)
13.
go back to reference 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)CrossRefMATH 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)CrossRefMATH
14.
go back to reference 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) 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)
15.
go back to reference 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) 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)
16.
go back to reference 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) 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)
17.
go back to reference Lehman, M.M.: Programs, life cycles, and laws of software evolution. Proc. IEEE 68, 1060–1076 (1980)CrossRef Lehman, M.M.: Programs, life cycles, and laws of software evolution. Proc. IEEE 68, 1060–1076 (1980)CrossRef
18.
go back to reference 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) 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)
19.
go back to reference 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)CrossRef 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)CrossRef
20.
go back to reference 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)CrossRef 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)CrossRef
21.
go back to reference 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) 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)
22.
go back to reference 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) 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)
23.
go back to reference 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) 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)
24.
go back to reference 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)CrossRef 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)CrossRef
25.
go back to reference 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) 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)
26.
go back to reference 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) 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)
32.
go back to reference Anton, A.I., Potts, C.: Functional paleontology: the evolution of user-visible system services. IEEE Trans. Software Eng. 29, 151–166 (2003)CrossRef Anton, A.I., Potts, C.: Functional paleontology: the evolution of user-visible system services. IEEE Trans. Software Eng. 29, 151–166 (2003)CrossRef
Metadata
Title
Evolution of Feature-Oriented Software: How to Stay on Course and Avoid the Cliffs of Modularity Drift
Authors
Andrzej Olszak
Sanja Lazarova-Molnar
Bo Nørregaard Jørgensen
Copyright Year
2015
DOI
https://doi.org/10.1007/978-3-319-25579-8_11

Premium Partner