Skip to main content

2015 | OriginalPaper | Buchkapitel

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

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

Erschienen in: Software Technologies

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

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.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

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!

Literatur
1.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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
Metadaten
Titel
Evolution of Feature-Oriented Software: How to Stay on Course and Avoid the Cliffs of Modularity Drift
verfasst von
Andrzej Olszak
Sanja Lazarova-Molnar
Bo Nørregaard Jørgensen
Copyright-Jahr
2015
DOI
https://doi.org/10.1007/978-3-319-25579-8_11