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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- J. Bader and E. Zitzler. 2011. Hype: An algorithm for fast hypervolume based many-objective optimization. Evolutionary Computation. 19, 1, 45--76. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- D. Brockhoff and E. Zitzler. 2009. Objective reduction in evolutionary multiobjective optimization: theory and applications. Evolutionary Computation 17, 2, 135--166. Google ScholarDigital Library
- J. Cohen. 1988. Statistical Power Analysis for the Behavioral Sciences. Routledge.Google Scholar
- 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 ScholarDigital Library
- K. Deb. 2001. Multiobjective Optimization Using Evolutionary Algorithms. John Wiley and Sons. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- E. Eiben and S. K. Smit. 2011. Parameter tuning for configuring and analyzing evolutionary algorithms. Swarm and Evolutionary Computation 1, 1, 19--31.Google ScholarCross Ref
- 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 ScholarDigital Library
- M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- M. Harman and B. Jones. 2001. Search Based Software Engineering, J. Inf. Softw. Tech. 43, 14, 833--839.Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- S. Kukkonen and J. Lampinen. 2007. Ranking-dominance and many-objective optimization. In Proceedings of IEEE Congress on Evolutionary Computation. 3983--3990.Google Scholar
- Meir M. Lehman. 1980. Programs, life cycles, and laws of software evolution. Proc. IEEE 68, 9, 1060--1076.Google ScholarCross Ref
- 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 ScholarDigital Library
- O. Maqbool and H. A. Babri. 2007. Hierarchical clustering for software architecture recovery. IEEE Trans. Soft. Eng. 33, 11, 759--780. Google ScholarDigital Library
- R. G. Miller. 1986. Beyond ANOVA, Basics of Applied Statistics. Wiley.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- M. K. O'Keeffe and M. Ó Cinnéide. 2008. Search-based refactoring for software maintenance. J. Syst. Softw. 81, 4. 502--516. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- Q. Zhang and H. Li. 2007. MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition. IEEE Trans. Evol. Comput. 11, 6, 712--731. Google ScholarDigital Library
- 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 Scholar
Index Terms
- Many-Objective Software Remodularization Using NSGA-III
Recommendations
Using Cohesion and Coupling for Software Remodularization: Is It Enough?
Refactoring and, in particular, remodularization operations can be performed to repair the design of a software system and remove the erosion caused by software evolution. Various approaches have been proposed to support developers during the ...
An improved NSGA-III procedure for evolutionary many-objective optimization
GECCO '14: Proceedings of the 2014 Annual Conference on Genetic and Evolutionary ComputationMany-objective (four or more objectives) optimization problems pose a great challenge to the classical Pareto-dominance based multi-objective evolutionary algorithms (MOEAs), such as NSGA-II and SPEA2. This is mainly due to the fact that the selection ...
Multi-dimensional information-driven many-objective software remodularization approach
AbstractMost of the search-based software remodularization (SBSR) approaches designed to address the software remodularization problem (SRP) areutilizing only structural information-based coupling and cohesion quality criteria. However, in practice apart ...
Comments