An Efficient Scheme for Candidate Solutions of Search-Based Multi-objective Software Remodularization

  • Amarjeet PrajapatiEmail author
  • Jitender Kumar Chhabra
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9734)


Multi-objective search-based software remodularization approaches are used to rearrange the software elements into modules by optimizing several quality criteria. These search-based approaches can find out better quality regrouping solutions compared to the traditional (analytical based) remodularization, if the suitable encoding for the candidate solutions is used. In this paper, we propose an efficient encoding scheme for candidate solutions and use this scheme to remodularize the object-oriented software using genetic based multi-objective evolutionary algorithm. This proposed representation helps in improving human-computer interaction, and semantic based, efficiently-designed and error-free information gets transferred to the computing system through it. To assess the effectiveness of the proposed approach, we evaluate it over six real-world software systems of different characteristics. Further, the approach is compared with the existing encoding scheme (i.e., GNE representation scheme). Experiments show that the proposed approach produces better results in terms of quality, convergence speed and execution time compared to GNE representation scheme.


Software remodularization Search based software engineering Multi-objective optimization Object-oriented systems 


  1. 1.
    Zanetti, M.S., Tessone, C.J., Scholtes, I., Schweitzer, F.: Automated software remodularization based on move refactoring: a complex systems approach. In: Proceedings of 13th International Conference on Modularity (MODULARITY 2014), pp. 73–84. ACM, New York, NY, USA (2014)Google Scholar
  2. 2.
    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. 23(1), 1–33 (2014)CrossRefGoogle Scholar
  3. 3.
    Anquetil, N., Lethbridge, T.C.: Experiments with clustering as a software remodularization method. In: Proceedings of Sixth Working Conference on Reverse Engineering, pp. 235–255 (1999)Google Scholar
  4. 4.
    Praditwong, K., Harman, M., Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans. Softw. Eng. 37(2), 264–282 (2011)CrossRefGoogle Scholar
  5. 5.
    Beyer, D., Noack, A.: Clustering software artifacts based on frequent common changes. In: Proceedings of the 13th IEEE International Workshop on Program Comprehension (IWPC 2005), pp. 1092–8138 (2005)Google Scholar
  6. 6.
    Serban, G., Czibula, I.-G.: Restructuring software systems using clustering. In: 22nd International Symposium on Computer and Information Sciences, pp. 1–6 (2007)Google Scholar
  7. 7.
    Maqbool, O., Babri, H.A.: Hierarchical clustering for software architecture recovery. IEEE Trans. Softw. Eng. 33(11), 759–780 (2007)CrossRefGoogle Scholar
  8. 8.
    Harman, M., Jones, B.: Search based software engineering. J. Inf. Softw. Technol. 43(14), 833–839 (2001)CrossRefGoogle Scholar
  9. 9.
    Harman, M. Hierons, R, Proctor, M.: A new representation and crossover operator for search-based optimization of software modularization. In: Proceedings of the Genetic and Evolutionary Computation Conference, pp. 1351–1358. Morgan Kaufmann Publishers, New York (2002)Google Scholar
  10. 10.
    Doval, D., Mancoridis, S., Mitchell, B.S.: Automatic clustering of software systems using a genetic algorithm. In: Proceedings Software Technology and Engineering Practice, STEP 2099, pp. 73–81 (1999)Google Scholar
  11. 11.
    Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y., Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: Proceedings of 6th International Workshop on Program Comprehension, pp. 45–52 (1998)Google Scholar
  12. 12.
    Bavota, G., Carnevale, F., De Lucia, A., Di Penta, M., Oliveto, R.: Putting the developer in-the-loop: an interactive GA for software re-modularization. In: Fraser, G., Teixeira de Souza, J. (eds.) SSBSE 2012. LNCS, vol. 7515, pp. 75–89. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  13. 13.
    Abdeen, H., Ducasse, S., Sahraoui, H.A.: Modularization metrics: assessing package organization in legacy large object-oriented software. In: Proceedings of WCRE 2011, pp. 394–398. IEEE Computer Society Press (2011)Google Scholar
  14. 14.
    Barros, M.: An analysis of the effects of composite objectives in multi-objective software module clustering. In: Proceedings of the Fourteenth International Conference on Genetic and Evolutionary GECCC-12, pp 1205–1212 (2012)Google Scholar
  15. 15.
    Wiggerts, T.A.: Using clustering algorithms in legacy systems remodularization. In: IEEE Working Conference on Reverse Engineering, pp. 33–43 (1997)Google Scholar
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    Anquetil, N., Denier, S., Ducasse, S., Laval, J., Pollet, D.: Software (re)modularization: fight against the structure erosion and migration preparation (2010)Google Scholar
  18. 18.
    Abreu, F.B., Goulao, M.: Coupling and cohesion as modularization drivers: are we being over-persuaded. In: Fifth European Conference on Software Maintenance and Reengineering, pp. 47–57 (2001)Google Scholar
  19. 19.
    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)CrossRefGoogle Scholar
  20. 20.
    Abdeen, H., Ducasse, S., Sahraoui, H., Alloui, I.: Automatic package coupling and cycle minimization. In: Proceedings of the 16th Working Conference on Reverse Engineering, pp. 103–112. IEEE CS Press, Lille, France (2009)Google Scholar
  21. 21.
    Falkenauer, E.: The grouping genetic algorithm–widening the scope of the GAs. Proc. Belg. J. Oper. Res. Stat. Comput. Sci. 33, 79–102 (1992)zbMATHGoogle Scholar
  22. 22.
    Falkenauer, E.: Genetic Algorithms for Grouping Problems. Wiley, New York (1998)zbMATHGoogle Scholar
  23. 23.
    Maulik, U., Bandyopadhyay, S.: Genetic algorithm-based clustering technique. Pattern Recogn. 33(9), 1455–1465 (2000)CrossRefGoogle Scholar
  24. 24.
    Deb, K., Agrawal, S., Pratap, A., Meyarivan, T.: A fast and elitist multi-objective genetic algorithm: NSGA-II. IEEE Trans. Evol. Comput. 6(2), 182–197 (2002)CrossRefGoogle Scholar
  25. 25.
    Cotilla-Sanchez, E., Hines, P.D.H., Barrows, C., Blumsack, S., Patel, M.: Multi-attribute partitioning of power networks based on electrical distance. IEEE Trans. Power Syst. 28(4), 4979–4987 (2013)CrossRefGoogle Scholar
  26. 26.
    Hartigan, J., Wong, M.: Algorithm AS 136: a K-means clustering algorithm. J. Roy. Stat. Soc. Ser. C 28(1), 100–108 (1979)zbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.Computer Engineering DepartmentNIT KurukshetraKurukshetraIndia

Personalised recommendations