Skip to main content
Log in

Software Package Restructuring with Improved Search-based Optimization and Objective Functions

  • Research Article-Computer Engineering and Computer Science
  • Published:
Arabian Journal for Science and Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig.2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. http://stan4j.com/.

  2. https://structure101.com/.

  3. http://jmetal.sourceforge.net/.

  4. http://www.uniriotec.br/~marcio.barros/multiobjective.

References

  1. Van Rysselberghe F, Demeyer S: Studying software evolution information by visualizing the change history. ICSM, 328–337 (2005)

  2. Xing, Z.; Stroulia, E.: Analyzing the evolutionary history of the logical design of object-oriented software. Trans Softw Eng 31(10), 850–868 (2005)

    Article  Google Scholar 

  3. Lehman, M.M.; Belady, L.A.: Program Evolution Process of Software Change. Academic Press, London and New York (1995)

    Google Scholar 

  4. Martin, R.C.: Agile Software Development: Principals Patterns and Practices. Prentice-Hall, New Jersey (2002)

    Google Scholar 

  5. 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)

  6. 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)

    Article  Google Scholar 

  7. 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

    Article  Google Scholar 

  8. Kaur, S.; Singh, S.: How does object-oriented code refactoring influence software quality? Research landscape and challenges. J Sys Softw 157, 110394 (2019)

    Article  Google Scholar 

  9. 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

    Article  Google Scholar 

  10. 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)

  11. 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)

    Article  Google Scholar 

  12. 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)

  13. Praditwong, K.; Harman, M.; Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans Softw Eng 37(2), 264–282 (2011)

    Article  Google Scholar 

  14. 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)

  15. 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)

    Google Scholar 

  16. Schwanke, R.W.: An intelligent tool for re-engineering software modularity. In proceeding 13th International Conference on Software Engineering, 83–92 (1991)

  17. Harman, M.; Jones, B.F.: Search based software engineering. Inf Softw Technol 43, 833–839 (2001)

    Article  Google Scholar 

  18. 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)

    Article  Google Scholar 

  19. Chhabra, J.K.; Aggarwal, K.K.; Singh, Y.: complete dependence matrix for object-oriented software. Int. J. Manag. Syst. 19(1), 43–54 (2003)

    Google Scholar 

  20. Geem, Z.W.; Kim, J.H.; Loganathan, G.: A new heuristic optimization algorithm: harmony search. SIMULATION 76(2), 60–68 (2001)

    Article  Google Scholar 

  21. 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)

    Article  Google Scholar 

  22. 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)

  23. Abualigah, L.M.Q.: Feature Selection and Enhanced Krill Herd Algorithm for Text Document Clustering: Studies in Computational Intelligence, vol. 816. Springer, Cham (2019)

    Book  Google Scholar 

  24. Wang, L.; Hu, H.; Liu, R.; Zhou, X.: An improved differential harmony search algorithm for function optimization problems. Soft Comput. 23, 4827–4852 (2019)

    Article  Google Scholar 

  25. 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)

    Article  Google Scholar 

  26. 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)

    Article  Google Scholar 

  27. 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)

    Article  Google Scholar 

  28. 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)

    Google Scholar 

  29. Kim, H.S.; Kwon, Y.R.: Restructuring programs through program slicing. Int’1 J Softw Eng Knowl Eng 4(3), 349–368 (1994)

    Article  MathSciNet  Google Scholar 

  30. Lakhotia, A.; Deprez, J.C.: Restructuring programs by tucking statements into functions. J Info. Soft Technol 11(40), 677–689 (1998)

    Article  Google Scholar 

  31. Kang, B.-K.; Beiman, J.M.: Using design abstractions to visualize quantify and restructure software. J Sys Softw 42, 175–187 (1998)

    Article  Google Scholar 

  32. 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)

  33. Lung, C.-H.; Xu, X.; Zaman, M.; Srinivasan, A.: Program restructuring using clustering techniques. J. Syst. Softw. 79(9), 1261–1279 (2009)

    Article  Google Scholar 

  34. Alkhalid, A.; Alshayeb, M.; Mahmoud, S.: Software refactoring at the package level using clustering techniques. IET Softw 5(3), 274–286 (2011)

    Article  Google Scholar 

  35. 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)

    Article  Google Scholar 

  36. 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)

  37. 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)

  38. 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)

  39. 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)

  40. Prajapati, A.; Chhabra, J.K.: MaDHS: Many-objective discrete harmony search to improve existing package design. Comput. Intell. 35(1), 98–123 (2019)

    Article  MathSciNet  Google Scholar 

  41. 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)

    Article  Google Scholar 

  42. 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)

    Google Scholar 

  43. 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

    Article  Google Scholar 

  44. Wolpert, D.H.; Macready, W.G.: No free lunch theorems for optimization. IEEE Trans. Evol. Comput. 1(1), 67–82 (1997)

    Article  Google Scholar 

  45. Madhavji, N.H.; Fernandez-Ramil, J.; Perry, D.: Software Evolution and Feedback: Theory and Practice. Wiley, New Jersey (2006)

    Book  Google Scholar 

  46. Bilal, H.Z., Black, S.E.: Using the ripple effect to measure software quality. SQM, 2005. Cheltenham, Gloucestershire, UK 2005

  47. Black, S.E.: Computation of ripple effect measures for software. Ph.D. thesis, London South Bank University, London, UK, (2001)

  48. 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)

  49. 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)

  50. 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)

    Article  Google Scholar 

  51. 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)

    Article  Google Scholar 

  52. 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)

  53. Tsantalis, N.; Chatzigeorgiou, A.: Identification of extract method refactoring opportunities for the decomposition of methods. J Sys Softw 84(10), 1757–1782 (2011)

    Article  Google Scholar 

  54. Andritsos, P.; Tzerpos, V.: Information-theoretic software clustering. IEEE Trans. Software Eng. 31(2), 150–165 (2005)

    Article  Google Scholar 

  55. 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)

  56. Prajapati, A.; Chhabra, J.K.: Improving modular structure of software system using structural and lexical dependency. Inf. Softw. Technol. 82, 96–120 (2017)

    Article  Google Scholar 

  57. Wohlin, C.; Runeson, P.; Höst, M.; Ohlsson, M.C.; Regnell, B.; Wesslén, A.: Experimentation in software engineering. Springer, Berlin (2012)

    Book  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Amarjeet Prajapati.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13369-021-05568-w

Keywords

Navigation