Abstract
Software restructuring is a crucial problem in software engineering. Improving the package structure of a large and complex object-oriented software system with minimum possible modification is an emerging software restructuring problem. To address the different aspects of software restructuring problems, many approaches based on deterministic and search-based optimization algorithms have been proposed. The inability of deterministic algorithms in addressing large and complex software restructuring problems encourages the researchers and practitioners to apply the search-based optimization algorithms. Most of the existing search-based software restructuring approaches mainly focus on improving the quality of existing package structure from various quality metrics perspectives. So, restructuring solution produced by such approaches can be better from the software quality metrics perspective and may not be better from the developers’ perspective. To improve the software package structure that can be accepted from the quality metrics perspective and the developers’ perspective, we propose a search-based software restructuring approach. To this contribution, we incorporate various favorable strategies corresponding to the nature of the software package restructuring problem in the framework of the harmony search algorithm. To guide the optimization process toward an expected software restructuring solution, we also redefine the objective functions. To validate the performance of our proposed approach, we apply it over eight object-oriented software projects. The obtained results show that the proposed approach does improve not only the quality of the package structure from the quality metrics perspective but also the developers’ perspective. Additionally, it also maintains the minimum possible modifications per improvement of package quality.
Similar content being viewed by others
References
Van Rysselberghe F, Demeyer S: Studying software evolution information by visualizing the change history. ICSM, 328–337 (2005)
Xing, Z.; Stroulia, E.: Analyzing the evolutionary history of the logical design of object-oriented software. Trans Softw Eng 31(10), 850–868 (2005)
Lehman, M.M.; Belady, L.A.: Program Evolution Process of Software Change. Academic Press, London and New York (1995)
Martin, R.C.: Agile Software Development: Principals Patterns and Practices. Prentice-Hall, New Jersey (2002)
Zhu, T.; Wu, Y.; Peng, X.; Xing, Z.; Zhao, W.: Monitoring software quality evolution by analyzing deviation trends of modularity views. 18th Working Conference on Reverse Engineering, Limerick, 229–238 (2001)
Bavota, G.; Gethers, M.; Oliveto, R.; Poshyvanyk, D.; Lucia, A.D.: Improving software modularization via automated analysis of latent topics and dependencies. ACM Trans Softw Eng Methodol 4(1), 1–33 (2014)
Kaur, S.; Awasthi, L.K.; Sangal, A.L.: A brief review on multi-objective software refactoring and a new method for its recommendation. Arch Computat Method Eng (2020). https://doi.org/10.1007/s11831-020-09491-5
Kaur, S.; Singh, S.: How does object-oriented code refactoring influence software quality? Research landscape and challenges. J Sys Softw 157, 110394 (2019)
Kaur, S.; Awasthi, L.K.; Sangal, A.L.: A review on software refactoring opportunity identification and sequencing in object-oriented software. Recent Adv Electr Electron Eng 13, 1 (2020). https://doi.org/10.2174/2352096513999200704140718
Mancoridis, S.; Mitchell, B.S.; Rorres, C.; Chen, Y.F.; Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. Proceedings. 6th International Workshop on Program Comprehension, 45–53 (1998)
Mitchell, B.S.; Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE Trans Softw Eng 32(3), 193–208 (2006)
Bavota, G.; Lucia, A.D.; Marcus, A.; Oliveto, R.: Software re-modularization based on structural and semantic metrics. In: Proceedings of WCRE’. 95–204 (2010)
Praditwong, K.; Harman, M.; Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans Softw Eng 37(2), 264–282 (2011)
Abdeen, H.; Sahraoui, H.; Shata, O.; Anquetil N.; Ducasse S.: Towards automatically improving package structure while respecting original design decisions. 20th Working Conference on Reverse Engineering (WCRE), Koblenz, 212–221 (2013)
Prajapati, A.; Chhabra, J.K.: Improving package structure of object-oriented software using multi-objective optimization and weighted class connections. J King Saud Univ - Comput Infor Sci 29(3), 349–364 (2017)
Schwanke, R.W.: An intelligent tool for re-engineering software modularity. In proceeding 13th International Conference on Software Engineering, 83–92 (1991)
Harman, M.; Jones, B.F.: Search based software engineering. Inf Softw Technol 43, 833–839 (2001)
Mkaouer, W.; Kessentini, M.; Shaout, A.; Koligheu, P.; Bechikh, S.; Deb, K.; Ouni, A.: Many-Objective Software Remodularization Using NSGA-III. ACM Trans Softw Eng Methodol 24(3), 1–45 (2015)
Chhabra, J.K.; Aggarwal, K.K.; Singh, Y.: complete dependence matrix for object-oriented software. Int. J. Manag. Syst. 19(1), 43–54 (2003)
Geem, Z.W.; Kim, J.H.; Loganathan, G.: A new heuristic optimization algorithm: harmony search. SIMULATION 76(2), 60–68 (2001)
Abualigah, L.M.; Khader, A.T.; Hanandeh, E.S.; Gandomi, A.H.: A novel hybridization strategy for krill herd algorithm applied to clustering techniques. Appl. Soft Comput. 60, 423–435 (2017)
Sreenivas, P.; Saheb, S.K.P.; Yohan, M.: An overview of harmony search algorithm applied in identical parallel machine scheduling. In Recent Trends in Mechanical Engineering; Springer, Berlin, 709–714 (2020)
Abualigah, L.M.Q.: Feature Selection and Enhanced Krill Herd Algorithm for Text Document Clustering: Studies in Computational Intelligence, vol. 816. Springer, Cham (2019)
Wang, L.; Hu, H.; Liu, R.; Zhou, X.: An improved differential harmony search algorithm for function optimization problems. Soft Comput. 23, 4827–4852 (2019)
Abualigah, L.M.; Khader, A.T.; Al-Betar, M.A.; Alomari, O.A.: Text feature selection with a robust weight scheme and dynamic dimension reduction to text document clustering. Expert Syst. 84, 24–36 (2017)
Sedhom, B.E.; El-Saadawi, M.M.; Hatata, A.Y.; Alsayyari, A.S.: Hierarchical control technique-based harmony search optimization algorithm versus model predictive control for autonomous smart microgrids. Int. J. Electr. Power Energy Syst. 115, 105511 (2020)
Zhu, Q.; Tang, X.; Li, Y.; Yeboah, M.O.: An improved differential-based harmony search algorithm with linear dynamic domain. Knowl. Based Syst. 187, 104809 (2020)
Shiva, C.K.; Kumar, R.: Quasi oppositional harmony search algorithm approach for ad hoc and sensor networks. In: De, D.; Mukherjee, A.; Das, S.K.; Dey, N. (Eds.) Nature Inspired Computing for Wireless Sensor Networks. Springer, Germany (2020)
Kim, H.S.; Kwon, Y.R.: Restructuring programs through program slicing. Int’1 J Softw Eng Knowl Eng 4(3), 349–368 (1994)
Lakhotia, A.; Deprez, J.C.: Restructuring programs by tucking statements into functions. J Info. Soft Technol 11(40), 677–689 (1998)
Kang, B.-K.; Beiman, J.M.: Using design abstractions to visualize quantify and restructure software. J Sys Softw 42, 175–187 (1998)
Xu, X.: Lung, C.-H.: Zaman, M.: Srinivasan, A.: Program restructuring through clustering techniques. In: Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop on (SCAM’04). Washington, DC, USA: IEEE Computer Society. 75–84 (2004)
Lung, C.-H.; Xu, X.; Zaman, M.; Srinivasan, A.: Program restructuring using clustering techniques. J. Syst. Softw. 79(9), 1261–1279 (2009)
Alkhalid, A.; Alshayeb, M.; Mahmoud, S.: Software refactoring at the package level using clustering techniques. IET Softw 5(3), 274–286 (2011)
Pan, W.-F.; Jiang, B.; Li, B.: Refactoring software packages via community detection in complex software networks. Int. J Autom Comput 10(2), 157–166 (2013)
Marian, Z.; Czibula, I.;Czibula, G.: A Hierarchical clustering-based approach for software restructuring at the package level, 19th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), Timisoara, 239–246 (2017)
Doval, D.; Mancoridis, S.; Mitchell, B.S.: Automatic clustering of software systems using a genetic algorithm. In: Proceedings of IEEE conference on software technology and engineering practice (STEP’99). 73–81(1991)
Mahdavi, K.; Harman, M.; Hierons, RM.: A multiple hill climbing approach to software module clustering. In: Proceedings of the International Conference on Software Maintenance. 315–324 (2003)
Abdeen, H.; Ducasse, S.; Sahraoui, H.A.; Alloui, I.: Automatic package coupling and cycle minimization. Proceedings of WCRE’ 2009. IEEE Computer Society Press, 103–112 (2009)
Prajapati, A.; Chhabra, J.K.: MaDHS: Many-objective discrete harmony search to improve existing package design. Comput. Intell. 35(1), 98–123 (2019)
Prajapati, A.; Chhabra, J.K.: Many objective artificial bee colony algorithm for large scale software module clustering problem. Soft. Comput. 22(19), 6341–6361 (2018)
Prajapati, A.; Chhabra, J.K.: FP-ABC: Fuzzy pareto-dominance driven artificial bee colony algorithm for many objective software clustering. Comput. Lang. Syst. Struct. 51, 1–21 (2018)
Prajapati, A.: Two-archive fuzzy-pareto-dominance swarm optimization for many-objective software architecture reconstruction. Arab J Sci Eng (2021). https://doi.org/10.1007/s13369-020-05147-5
Wolpert, D.H.; Macready, W.G.: No free lunch theorems for optimization. IEEE Trans. Evol. Comput. 1(1), 67–82 (1997)
Madhavji, N.H.; Fernandez-Ramil, J.; Perry, D.: Software Evolution and Feedback: Theory and Practice. Wiley, New Jersey (2006)
Bilal, H.Z., Black, S.E.: Using the ripple effect to measure software quality. SQM, 2005. Cheltenham, Gloucestershire, UK 2005
Black, S.E.: Computation of ripple effect measures for software. Ph.D. thesis, London South Bank University, London, UK, (2001)
Black, S.E.; Rosner, P.E.: Measuring ripple effect for the object-oriented paradigm. IASTED International Conference on Software Engineering, 15th–17th Innsbruck, Austria, (2005)
Anwar, S.; Idris, F.; Ramzan, M.; Shahid, A.A.; Rauf, A.: Architecture based ripple effect analysis: a software quality maintenance perspective. International Conference on Information Science and Applications, Seoul. 1–8 (2010)
Al-Dallal, J.; Briand, L.: A precise method-method interaction-based cohesion metric for object-oriented classes. ACM Trans Softw Eng Methodo 21(2), 1–34 (2012)
Deb, K.; Pratap, A.; Agarwal, S.; Meyarivan, T.: A fast and elitist multi-objective genetic algorithm: NSGA-II. IEEE Trans Evolut Comput 6(2), 182–197 (2002)
Abreu, F.B.; Pereira, G.; Sousa, P.: A coupling-guided cluster analysis approach to reengineer the modularity of object-oriented systems. Proceeding of the Fourth European Software Maintenance and Reengineering, 13–22 (2000)
Tsantalis, N.; Chatzigeorgiou, A.: Identification of extract method refactoring opportunities for the decomposition of methods. J Sys Softw 84(10), 1757–1782 (2011)
Andritsos, P.; Tzerpos, V.: Information-theoretic software clustering. IEEE Trans. Software Eng. 31(2), 150–165 (2005)
Abreu, F.B.; Pereira, G.; Sousa, P.: A coupling-guided cluster analysis approach to reengineer the modularity of object-oriented systems, In: Proceeding of the Fourth European Software Maintenance and Reengineering, 13–22 (2000)
Prajapati, A.; Chhabra, J.K.: Improving modular structure of software system using structural and lexical dependency. Inf. Softw. Technol. 82, 96–120 (2017)
Wohlin, C.; Runeson, P.; Höst, M.; Ohlsson, M.C.; Regnell, B.; Wesslén, A.: Experimentation in software engineering. Springer, Berlin (2012)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Prajapati, A. Software Package Restructuring with Improved Search-based Optimization and Objective Functions. Arab J Sci Eng 46, 9023–9043 (2021). https://doi.org/10.1007/s13369-021-05568-w
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13369-021-05568-w