skip to main content
research-article

Many-Objective Software Remodularization Using NSGA-III

Published:13 May 2015Publication History
Skip Abstract Section

Abstract

Software systems nowadays are complex and difficult to maintain due to continuous changes and bad design choices. To handle the complexity of systems, software products are, in general, decomposed in terms of packages/modules containing classes that are dependent. However, it is challenging to automatically remodularize systems to improve their maintainability. The majority of existing remodularization work mainly satisfy one objective which is improving the structure of packages by optimizing coupling and cohesion. In addition, most of existing studies are limited to only few operation types such as move class and split packages. Many other objectives, such as the design semantics, reducing the number of changes and maximizing the consistency with development change history, are important to improve the quality of the software by remodularizing it. In this article, we propose a novel many-objective search-based approach using NSGA-III. The process aims at finding the optimal remodularization solutions that improve the structure of packages, minimize the number of changes, preserve semantics coherence, and reuse the history of changes. We evaluate the efficiency of our approach using four different open-source systems and one automotive industry project, provided by our industrial partner, through a quantitative and qualitative study conducted with software engineers.

References

  1. H. Abdeen, S. Ducasse, H. A. Sahraoui, and I. Alloui. 2009. Automatic package coupling and cycle minimization. In Proceedings of the 16th Working Conference on Reverse Engineering. IEEE, 103--112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. H. Abdeen, S. Ducasse, H. A. Sahraoui, and I. Alloui. 2011. Modularization metrics: Assessing package organization in legacy large object-oriented software. In Proceedings of the 18th Working Conference on Reverse Engineering. IEEE, 394--398. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. H. Abdeen, H. Sahraoui, O. Shata, N. Anquetil, and S. Ducasse. 2013. Towards automatically improving package structure while respecting original design decisions. In Proceedings of the Working Conference on Reverse Engineering., 212--221.Google ScholarGoogle Scholar
  4. N. Anquetil and T. Lethbridge. 1999. Experiments with clustering as a software remodularization method. In Proceedings of the 6th Working Conference on Reverse Engineering. IEEE, 235--255. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Arcuri and L. C. Briand. 2011. A practical guide for using statistical tests to assess randomized algorithms in software engineering. In Proceedings of the 33rd International Conference on Software Engineering. ACM, 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Arcuri and Fraser G. 2013. Parameter tuning or default values? An empirical investigation in search-based software engineering, Empirical Softw. Eng. 18, 3, 594--623.Google ScholarGoogle ScholarCross RefCross Ref
  7. M. D. Asafuddoula, T. Ray, and R. A. Sarker. 2013. A decomposition based evolutionary algorithm for many objective optimization with systematic sampling and adaptive epsilon control. In Proceedings of the International Conference on Evolutionary Multi-Criterion Optimization. 413--427.Google ScholarGoogle Scholar
  8. J. Bader and E. Zitzler. 2011. Hype: An algorithm for fast hypervolume based many-objective optimization. Evolutionary Computation. 19, 1, 45--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. G. Bavota, F. Carnevale, A. D. Lucia, M. D. Penta, and R. Oliveto. 2012. Putting the developer in-the-loop: An interactive GA for software remodularization. In Proceedings of the Symposium on Search-Based Software Engineering. 75--89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. G. Bavota, A. D. Lucia, A. Marcus, and R. Oliveto. 2010. Software remodularization based on structural and semantic metrics. In Proceedings of the Working Conference on Reverse Engineering. 195--204. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. G. Bavota, A. D. Lucia, A. Marcus, and R. Oliveto. 2013. Using structural and semantic measures to improve software modularization. J. Empirical Softw. Eng. 18, 5, 901--932.Google ScholarGoogle ScholarCross RefCross Ref
  12. S. Bechikh, L. Ben Said, and K. Ghédira. 2010. Estimating point in multi-objective optimization using mobile reference points. In Proceedings of the IEEE Congress on Evolutionary Computation. 2129--2137.Google ScholarGoogle Scholar
  13. S. Bechikh, L. Ben Said, and K. Ghédira. 2011. Searching for knee regions of the Pareto front using mobile reference points. Software Comput. 15, 9. 1807--1823. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. L. Ben Said, S. Bechikh, and K. Ghédira. 2010. The r-dominance: A new dominance relation for interactive evolutionary multicriteria decision making. IEEE Trans. Evol. Comput. 14, 5, 801--818. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Boukhdhir, M. Kessentini, S. Bechikh, T. J. Dea, and L. Ben Said. 2014. On the use of machine learning and search-based software engineering for ill-defined fitness function: A case study on software refactoring. In Proceedings of the 6th IEEE Symposium on Search-Based Software Engineering. IEEE, 31--45.Google ScholarGoogle Scholar
  16. D. Brockhoff and E. Zitzler. 2006. Are all objectives necessary? On dimensionality reduction in evolutionary multiobjective optimization. parallel problem solving from nature. In Parallel Problem Solving from Nature, Lecture Notes in Computer Science, vol. 4193 Springer, 533--542. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D. Brockhoff and E. Zitzler. 2009. Objective reduction in evolutionary multiobjective optimization: theory and applications. Evolutionary Computation 17, 2, 135--166. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Cohen. 1988. Statistical Power Analysis for the Behavioral Sciences. Routledge.Google ScholarGoogle Scholar
  19. I. Das and J. E. Dennis. 1998. Normal-boundary intersection: A new method for generating Pareto optimal points in multicriteria optimization problems. SIAM J. Optim. 8, 3, 631--657. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. K. Deb. 2001. Multiobjective Optimization Using Evolutionary Algorithms. John Wiley and Sons. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. K. Deb and S. Gupta. 2010. Towards a link between knee solutions and preferred solution methodologies. In Swarm, Evolutionary, and Memetic Computing. Springer, 182--189.Google ScholarGoogle Scholar
  22. K. Deb and H. Jain. 2012. Handling many-objective problems using an improved NSGA-II procedure. In Proceedings of the IEEE Congress on Evolutionary Computation. 1--8.Google ScholarGoogle Scholar
  23. K. Deb and H. Jain. 2014. An evolutionary many-objective optimization algorithm using reference-point based non-dominated sorting approach, Part I: Solving problems with box constraints. IEEE Trans. Evol. Comput. 18, 4, 577.Google ScholarGoogle ScholarCross RefCross Ref
  24. K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan. 2002. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Trans. Evol. Comput. 6, 2, 182--197. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. K. Deb and D. K. Saxena. 2006. Searching for Pareto-optimal solutions through dimensionality reduction for certain large-dimensional multiobjective optimization problems. In Proceedings of the IEEE Congress on Evolutionary Computation. 3353--3360.Google ScholarGoogle Scholar
  26. K. Deb, J. Sundar, N. Uday, and S. Chaudhuri. 2006. Reference point based multi-objective optimization using evolutionary algorithms. Int. J. Comput. Intell. Research 2, 6, 273--286.Google ScholarGoogle ScholarCross RefCross Ref
  27. F. Di Pierro, S.-T. Khu, and D. A. Savic. 2007. An investigation on preference order ranking scheme for multiobjective evolutionary optimization. IEEE Trans. Evol. Comput. 11, 1, 17--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. J. Durillo, J. García-Nieto, A. J. Nebro, C. A. Coello Coello, F. Luna, and E. Alba. 2009. Multi-objective particle swarm optimizers: An experimental comparison. In Evolutionary Multicriterion Optimization, Lecture Notes in Computer Science, vol. 5467, 495--509. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. E. Eiben and S. K. Smit. 2011. Parameter tuning for configuring and analyzing evolutionary algorithms. Swarm and Evolutionary Computation 1, 1, 19--31.Google ScholarGoogle ScholarCross RefCross Ref
  30. F. Ferrucci, M. Harman, J. Ren, and F. Sarro. 2013. Not going to take this anymore: multi-objective overtime planning for software engineering projects. In Proceedings of the International Conference on Software Engineering. IEEE, 462--471. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. S. Hamdi. 2011. SOMSE: A Semantic Map Based Meta-Search Engine for the purpose of Web Information Customization. J. Appl. Softw. Comput. 11, 1, 1310--1321. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. M. Harman. 2013. Software engineering: An ideal set of challenges for evolutionary computation. In Proceedings of the 15th Annual Conference on Genetic and Evolutionary Computation, Christian Blum, Ed. ACM, New York, 1759--1760. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. M. Harman, R. M. Hierons, and M. Proctor. 2002. A new representation and crossover operator for search-based optimization of software modularization. In Proceedings of the Genetic and Evolutionary Computation Conference. Morgan Kaufmann Publishers Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. M. Harman and B. Jones. 2001. Search Based Software Engineering, J. Inf. Softw. Tech. 43, 14, 833--839.Google ScholarGoogle ScholarCross RefCross Ref
  36. M. Harman, S. A. Mansouri, and Y. Zhang. 2012. Search-based software engineering: Trends, techniques and applications. ACM Comput. Surv. 45, 1, Article 11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. M. Harman and L. Tratt. 2007. Pareto optimal search based refactoring at the design level. In Proceedings of the Genetic and Evolutionary Computation Conference. 1106--1113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. A. L. Jaimes, C. A. Coello Coello, and J. E. U. Barrientos. 2009. Online objective reduction to deal with many-objective problems. In Proceedings of the 5th International Conference on Evolutionary Multicriterion Optimization. 423--437. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. A. L. Jaimes, C. A. Coello Coello, H. E. Aguirre, and K. Tanaka. 2014. Objective space partitioning using conflict information for solving many-objective problems. In Parallel Problem Solving from Nature, Lecture Notes in Computer Science, vol. 6238, 305--327. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. A. L. Jaimes, A. A. Montaño, and C. A. Coello Coello. 2011. Preference incorporation to solve many-objective airfoil design problems. In Proceedings of the IEEE Congress on Evolutionary Computation, 1605--1612.Google ScholarGoogle Scholar
  41. H. Jain and K. Deb. 2013. An improved adaptive approach for elitist nondominated sorting genetic algorithm for many-objective optimization. In Proceedings of the Conference on Evolutionary Multicriterion Optimization. 307--321.Google ScholarGoogle Scholar
  42. A. Jensen and B. Cheng. 2010. On the use of genetic programming for automated refactoring and the introduction of design patterns. In Proceedings of the Genetic and Evolutionary Computation Conference. ACM, 1341--1348. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Y. Kataoka, M. D. Ernst, W. G. Griswold, and D. Notkin. 2001. Automated support for program refactoring using invariants. In Proceedings of the International Conference on Software Maintenance. 736--743. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. M. Kessentini, W. Kessentini, H. Sahraoui, M. Boukadoum, and A. Ouni. 2011. Design defects detection and correction by example. In Proceedings of the 19th IEEE International Conference on Program Comprehension. 81--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. V. Khare, X. Yao, and K. Deb. 2003. Performance scaling of multi-objective evolutionary algorithms. In Proceedings of the 2nd International Conference on Evolutionary Multi-Criterion Optimization. Springer, 376--390. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. M. Kim, D. Notkin, D. Grossman, and G. Wilson Jr. 2013. Identifying and Summarizing systematic code changes via rule inference. IEEE Trans. Softw. Eng. 39, 1, 45--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. S. Kukkonen and J. Lampinen. 2007. Ranking-dominance and many-objective optimization. In Proceedings of IEEE Congress on Evolutionary Computation. 3983--3990.Google ScholarGoogle Scholar
  48. Meir M. Lehman. 1980. Programs, life cycles, and laws of software evolution. Proc. IEEE 68, 9, 1060--1076.Google ScholarGoogle ScholarCross RefCross Ref
  49. S. Mancoridis, B. S. Mitchell, C. Rorres, Y. F. Chen, and E. R. Gansner. 1998. Using automatic clustering to produce high-level system organizations of source code. In Proceedings of the International Workshop on Program Comprehension. 45--55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. O. Maqbool and H. A. Babri. 2007. Hierarchical clustering for software architecture recovery. IEEE Trans. Soft. Eng. 33, 11, 759--780. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. R. G. Miller. 1986. Beyond ANOVA, Basics of Applied Statistics. Wiley.Google ScholarGoogle Scholar
  52. B. S. Mitchell and S. Mancoridis. 2006. On the automatic modularization of software systems using the bunch tool. IEEE Trans. Softw. Eng. 32, 3, 193--208. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. B. S. Mitchell and S. Mancoridis. 2008. On the evaluation of the bunch search-based software modularization algorithm. Softw. Computing 12, 1, 77--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. M. W. Mkaouer, M. Kessentini, S. Bechikh, and D. R. Tauritz. 2013. Preference-based multi-objective software modelling. In Proceedings of the Combining Modelling and Search-Based Software Engineering Workshop in the International Conference on Software Engineering. 61--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. M. Ó Cinnéide, L. Tratt, M. Harman, S. Counsell, and I. H. Moghadam. 2012. Experimental assessment of software metrics using automated refactoring. In Proceedings of the Conference on Empirical Software Engineering and Managemen. ACM, 49--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. M. K. O'Keeffe and M. Ó Cinnéide. 2008. Search-based refactoring for software maintenance. J. Syst. Softw. 81, 4. 502--516. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. A. Ouni, M. Kessentini, and H. Sahraoui. 2013c. Search-based refactoring using recorded code changes. In Proceedings of the European Conference on Software Maintenance and Reengineering. 221--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. A. Ouni, M. Kessentini, H. Sahraoui, and M. Boukadoum. 2012. Maintainability defects detection and correction: A multi-objective approach. J. Autom. Softw. Eng. 20, 1, 47--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. A. Ouni, M. Kessentini, H. Sahraoui, and M. S. Hamdi. 2012. Search-based refactoring: towards semantics preservation. In Proceedings of the 28th IEEE International Conference on Software Maintenance. 347--356. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. A. Ouni, M. Kessentini, H. Sahraoui, and M. Boukadoum. 2013a. Maintainability defects detection and correction: a multi-objective approach. In Proceedings of the Automated Software Engineering, Conference. Lecture Notes in Computer Science, Vol. 2, 47--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. A. Ouni, M. Kessentini, H. Sahraoui, and M. S. Hamdi. 2013b. The use of development history in software refactoring using a multi-objective evolutionary algorithm. In Proceedings of the Genetic and Evolutionary Computation Conference. 1461--1468. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. W. F. Opdyke, Refactoring, 1992. A program restructuring aid in designing object-oriented application frameworks, Ph.D. thesis, University of Illinois at Urbana-Champaign.Google ScholarGoogle Scholar
  63. F. Palomba, G. Bavota, M. Di Penta, R. Oliveto, A. De Lucia, and D. Poshyvanyk. 2013. Detecting bad smells in source code using change history information. In Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering. 268--278.Google ScholarGoogle Scholar
  64. K. Praditwong, M. Harman, and X. Yao. 2011. Software module clustering as a multi-objective search problem. IEEE Trans. Software Eng. 37, 2, 264--282 Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. K. Prete, N. Rachatasumrit, N. Sudan, and M. Kim. 2010. Template-based reconstruction of complex refactorings. In Proceedings of the 26th IEEE International Conference on Software Maintenance. IEEE, 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. L. Rachmawati and D. Srinivasan. 2009. Multiobjective evolutionary algorithm with controllable focus on the knees of the Pareto front. IEEE Trans. Evol. Comput. 13, 4, 810--824. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. G. Recio and K. Deb. 2013. Solving clustering problems using bi-objective evolutionary optimisation and knee finding algorithms. In Proceedings of the IEEE Congress on Evolutionary Computation. 2848--2855.Google ScholarGoogle Scholar
  68. H. Sato, C. A. Coello Coello, H. E. Aguirre, and K. Tanaka. 2012. Adaptive control of the number of crossed genes in many-objective evolutionary optimization. In Proceedings of the 6th International Conference on Learning and Intelligent Optimization, Y, Hamadi and M, Schoenauer, Eds., Springer, 478--484. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. D. K. Saxena, J. A. Duro, A. Tiwari, K. Deb, and Q. Zhang. 2013. Objective reduction in many-objective optimization: Linear and nonlinear algorithms. IEEE Trans. Evol. Comput. 17, 1, 77--99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. A. S. Sayyad, T. Menzies, and H. Ammar. 2013a. On the value of user preferences in search-based software engineering: a case study in software product lines. In Proceedings of the International Conference on Software Engineering (ICSE'13). IEEE, 492--501. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. A. S. Sayyad, J. Ingram, T. Menzies, and H. Ammar. 2013b. Scalable product line configuration: A straw to break the camel's back. In Proceedings of the International Conference on Automated Software Engineering (ASE'13). 465--474.Google ScholarGoogle Scholar
  72. O. Seng, M. Bauer, M. Biehl, and G. Pache. 2005. Search-based improvement of subsystem decompositions. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO). ACM Press, 1045--1051. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. M. Shtern and V. Azerpos. 2009. Methods for selecting and improving software clustering algorithms. In Proceedings of 17th IEEE International Conference on Program Comprehension. IEEE, 248--252.Google ScholarGoogle Scholar
  74. F. Siegmund, J. Bernedixen, L. Pehrsson, H. C. Amos Ng, and K. Deb. 2012. Reference point-based evolutionary multi-objective optimization for industrial systems simulation. In Proceedings of the Winter Simulation Conference. 130. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. H. K. Singh, A. Isaacs, and T. Ray. 2011. A Pareto corner search evolutionary algorithm and dimensionality reduction in many-objective optimization problems. IEEE Trans. Evol. Comput. 15, 4, 539--556. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. L. Thiele, K. Miettinen, P. J. Korhonen, and J. M. Luque. 2009. A preference-based evolutionary algorithm for multi-objective optimization. Evolutionary Computation 17, 3. 411--436. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. R. Wang, R. C. Purshouse, and P. J. Fleming. 2013. Preference-inspired coevolutionary algorithms for many-objective optimization. IEEE Trans. Evol. Comput. 17, 4, 474--494. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Z. Wang, K. Tang, and X. Yao. 2010. Multi-objective Approaches to Optimal Testing Resource Allocation in Modular Software Systems, IEEE Trans. Reliability 59, 3, 563--575.Google ScholarGoogle ScholarCross RefCross Ref
  79. T. A. Wiggerts. 1997. Using clustering algorithms in legacy systems remodularization. In Proceedings of the 4th Working Conference on Reverse Engineering. IEEE, 33--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. Q. Zhang and H. Li. 2007. MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition. IEEE Trans. Evol. Comput. 11, 6, 712--731. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. E. Zitzler and S. Künzli. 2004. Indicator-based selection in multiobjective search. In Proceedings of the 8th International Conference on Parallel Problem Solving from Nature. Springer, 832--842Google ScholarGoogle Scholar

Index Terms

  1. Many-Objective Software Remodularization Using NSGA-III

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Software Engineering and Methodology
      ACM Transactions on Software Engineering and Methodology  Volume 24, Issue 3
      May 2015
      293 pages
      ISSN:1049-331X
      EISSN:1557-7392
      DOI:10.1145/2776776
      Issue’s Table of Contents

      Copyright © 2015 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 13 May 2015
      • Accepted: 1 January 2015
      • Revised: 1 June 2014
      • Received: 1 January 2014
      Published in tosem Volume 24, Issue 3

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader