Modularization Compass - Navigating the White Waters of Feature-Oriented Modularity

Andrzej Olszak, Bo Nørregaard Jørgensen

Abstract

Successful software systems have to adapt to the evolving needs of their users. However, adding and extending functional features often becomes more difficult over time due to aggregated complexity and eroded modularity. This erosion can be quantified by measuring scattering and tangling of feature implementations in the source code, to track long-term regressions and to plan refactorings. This paper argues that the traditional usage of only the absolute values of modularity metrics is, however, insufficient and proposes to use their relative values instead. These relative values are referred to as the drift of feature-oriented modularity, and are defined as 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 proposed approach, called 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.

References

  1. Hou, D. and Wang, Y. 2009. 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, CASCON 7809, 122-135.
  2. Antón, A. I. and Potts, C. 2003. Functional Paleontology: The Evolution of User-Visible System Services. IEEE Trans. Softw. Eng. 29, 2, 151-166.
  3. Hsi, I. and Potts, C. 2000. Studying the Evolution and Enhancement of Software Features. ICSM'00: In Proceedings of the International Conference on Software Maintenance, pp. 143.
  4. Fischer, M. and Gall, H. 2004. Visualizing feature evolution of large-scale software based on problem and modification report data: Research Articles. J. Softw. Maint. Evol. 16, 6 (Nov. 2004), 385-403.
  5. Greevy, O., Ducasse, S., Girba, T. 2005. Analyzing feature traces to incorporate the semantics of change in software evolution analysis. ICSM 7805: Proceedings of the International Conference on Software Maintenance, pp. 347-356.
  6. Turner, C. R., Fuggetta, A., Lavazza, L. and Wolf, A. L. 1999. A conceptual basis for feature engineering. Journal of Systems and Software, vol. 49, no. 1, pp. 3-15.
  7. Parnas, D. L. 1972. On the criteria to be used in decomposing systems into modules. Communications of the ACM, vol. 15, no. 12, pp. 1053-1058.
  8. Rugaber, S., Stirewalt, K. and Wills, L. M. 1995. The interleaving problem in program understanding. WCRE'95: In Proceedings of 2nd Working Conference on Reverse Engineering, pp. 166-175.
  9. Letovsky, S. and Soloway, E. 1986. Delocalized plans and program comprehension. IEEE Software, vol. 3, no. 3, pp. 41-49.
  10. Eaddy, M., Zimmermann, T., Sherwood, K. D., Garg, V., Murphy, G. C., Nagappan, N. and Aho, A. V. 2008. Do crosscutting concerns cause defects?. IEEE Transactions on Software Engineering, 34, 497-515.
  11. Benestad, H. C., Anda, B. and Arisholm, E. 2009. Understanding cost drivers of software evolution: a quantitative and qualitative investigation of change effort in two evolving software systems. Journal of Empirical Software Engineering, 15(2), 166-203.
  12. Van Den Berg, K., Conejero, J. M. and Hernández, J. 2006. Analysis of crosscutting across software development phases based on traceability. In EA'06: Proceedings of the 2006 international workshop on Early aspects at ICSE, 43-50.
  13. Brcina, R. and Riebisch, M. 2008. Architecting for evolvability by means of traceability and features. In 23rd International Conference on Automated Software Engineering - Workshops, pp. 72-81.
  14. Wilde, N., Gomez, J.A., Gust, T., Strasburg, D. 1992. Locating user functionality in old code. ICSM'92: In Proceedings of the 1992 International Conference on Software Maintenance, pp.200-205.
  15. Tarr, P., Osher, H., Harrison, W., Sutton, S. M. 1999. N Degrees of Separation: Multi-Dimensional Separation of Concerns. ICSE'99: In Proceedings of the 21st International Conference on Software Engineering, pp 107-119.
  16. Briand, L. C., Daly, J. W. and Wüst, J. 1998. A unified framework for cohesion measurement in objectoriented systems. Journal of Empirical Software Engineering, vol. 3, no. 1, pp. 65-117.
  17. Briand, L. C., Daly, J. W. and Wüst, J. 1999. A unified framework for coupling measurement in objectoriented systems. IEEE Transactions on Software Engineering, vol. 13, no. 2, pp. 115-121.
  18. Seng, O., Bauer, M., Biehl, M. and Pache, G. 2005. Search-based improvement of subsystem decompositions. In Proceedings of the 2005 conference on Genetic and evolutionary computation , 1045-1051.
  19. Olszak, A. and Jørgensen, B. N. 2012. Remodularizing Java Programs for Improved Locality of Feature Implementations in Source Code. Science of Computer Programming, Vol. 77, no. 3, pp. 131-151.
  20. Lehman, M.M. 1980. Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 68(9), 1060-1076.
  21. Harman, M. and Tratt, L. 2007. Pareto Optimal Search Based Refactoring at the Design Level. GECCO'07: In Proceedings of the 9th annual conference on Genetic and evolutionary computation, 1106-1113.
  22. Tzerpos, V. and Holt, R. C. 2000. ACDC: An Algorithm for Comprehension-Driven Clustering. WCRE'00: In Proceedings of Seventh Working Conference on Reverse Engineering, 258-267.
  23. Olszak, A. and Jørgensen, B. N. 2012. Modularization of Legacy Features by Relocation and Reconceptualization: How Much is Enough? CSMR'12: In Proceedings of the 16th European Conference on Software Maintenance and Reengineering, IEEE Computer Society Press, pp. 171-180.
  24. Harman, M. and Clark, J. 2004. Metrics Are Fitness Functions Too. METRICS'04: In Proceedings of the IEEE International Symposium on Software Metrics, 58-69.
  25. Mitchell, B. S., Mancoridis, S. 2007. On the evaluation of the Bunch search-based software modularization algorithm. Journal of Soft Computing. 12, 1, 77-93.
  26. Murphy, G. C., Lai, A., Walker, R. J. and Robillard, M. P. (2001). Separating features in source code: an exploratory study. In ICSE'01: Proceedings of the 23rd International Conference on Software Engineering, 275-284.
Download


Paper Citation


in Harvard Style

Olszak A. and Nørregaard Jørgensen B. (2014). Modularization Compass - Navigating the White Waters of Feature-Oriented Modularity . In Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014) ISBN 978-989-758-036-9, pages 48-59. DOI: 10.5220/0005092800480059


in Bibtex Style

@conference{icsoft-ea14,
author={Andrzej Olszak and Bo Nørregaard Jørgensen},
title={Modularization Compass - Navigating the White Waters of Feature-Oriented Modularity},
booktitle={Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014)},
year={2014},
pages={48-59},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005092800480059},
isbn={978-989-758-036-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014)
TI - Modularization Compass - Navigating the White Waters of Feature-Oriented Modularity
SN - 978-989-758-036-9
AU - Olszak A.
AU - Nørregaard Jørgensen B.
PY - 2014
SP - 48
EP - 59
DO - 10.5220/0005092800480059