SP-J48: a novel optimization and machine-learning-based approach for solving complex problems: special application in software engineering for detecting code smells

  • Amandeep KaurEmail author
  • Sushma Jain
  • Shivani Goel
Original Article


This paper presents a novel hybrid algorithm based on optimization and machine-learning approaches for solving real-life complex problems. The optimization algorithm is inspired from the searching and attacking behaviors of sandpipers, called as Sandpiper Optimization Algorithm (SPOA). These two behaviors are modeled and implemented computationally to emphasize intensification and diversification in the search space. A comparison of the proposed SPOA algorithm is performed with nine competing optimization algorithms over 23 benchmark test functions. The proposed SPOA is further hybridized with B-J48 pruned machine-learning approach for efficiently detecting the code smells from the data set. The results reveal that the proposed technique is able to solve challenging problems and outperforms the other well-known approaches.


Optimization Bio-inspired metaheuristic techniques Machine-learning Code smells 


Compliance with ethical standards

Conflict of interest

The authors declare that they have no conflict of interest.


  1. 1.
    Singh P, Dhiman G (2018) A hybrid fuzzy time series forecasting model based on granular computing and bio-inspired optimization approaches. J Comput Sci 27:370–385CrossRefGoogle Scholar
  2. 2.
    Dhiman G, Kumar V (2018) Emperor penguin optimizer: a bio-inspired algorithm for engineering problems. Knowl Based Syst 159:20–50CrossRefGoogle Scholar
  3. 3.
    Singh P, Dhiman G (2018) Uncertainty representation using fuzzy-entropy approach: special application in remotely sensed high-resolution satellite images (rshrsis). Appl Soft Comput 72:121–139CrossRefGoogle Scholar
  4. 4.
    Dhiman G, Kaur A (2018) Optimizing the design of airfoil and optical buffer problems using spotted hyena optimizer. Designs 2(3):28CrossRefGoogle Scholar
  5. 5.
    Gaurav D, Vijay K (2018) Seagull optimization algorithm: theory and its applications for large-scale industrial engineering problems. Knowl Based Syst 165:169Google Scholar
  6. 6.
    Gaurav D, Vijay K (2019) KnRVEA: a hybrid evolutionary algorithm based on knee points and reference vector adaptation strategies for many-objective optimization. Appl Intell 1:1–27Google Scholar
  7. 7.
    Kennedy J, Eberhart RC (1995) Particle swarm optimization. In Proceedings of IEEE international conference on neural networks, pp 1942–1948Google Scholar
  8. 8.
    Alba E, Dorronsoro B (2005) The exploration/exploitation tradeoff in dynamic cellular genetic algorithms. IEEE Trans Evolut Comput 9(2):126–142CrossRefGoogle Scholar
  9. 9.
    Lozano M, Garcia-Martinez C (2010) Hybrid metaheuristics with evolutionary algorithms specializing in intensification and diversification: overview and progress report. Comput Oper Res 37(3):481–497MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Wolpert DH, Macready WG (1997) No free lunch theorems for optimization. IEEE Trans Evolut Comput 1(1):67–82CrossRefGoogle Scholar
  11. 11.
    Kirkpatrick S, Gelatt CD, Vecchi MP (1983) Optimization by simulated annealing. Science 220(4598):671–680MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Rashedi E, Nezamabadi-pour H, Saryazdi S (2009) GSA: a gravitational search algorithm. Inform Sci 179(13):2232–2248CrossRefzbMATHGoogle Scholar
  13. 13.
    Kaveh A, Talatahari S (2010) A novel heuristic optimization method: charged system search. Acta Mech 213(3):267–289CrossRefzbMATHGoogle Scholar
  14. 14.
    Erol OK, Eksin I (2006) A new optimization method: big bang-big crunch. Adv Eng Softw 37(2):106–111CrossRefGoogle Scholar
  15. 15.
    Kaveh A, Khayatazad M (2012) A new meta-heuristic method: ray optimization. Comput Struct 112–113:283–294CrossRefGoogle Scholar
  16. 16.
    Hatamlou A (2013) Black hole: a new heuristic optimization approach for data clustering. Inf Sci 222:175–184MathSciNetCrossRefGoogle Scholar
  17. 17.
    Formato RA (2009) Central force optimization: a new deterministic gradient-like optimization metaheuristic. Opsearch 46(1):25–51MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Holland John H (1992) Genetic algorithms. Sci Am 267(1):66–72CrossRefGoogle Scholar
  19. 19.
    Storn R, Price K (1997) Differential evolution—a simple and efficient heuristic for global optimization over continuous spaces. J Glob Optim 11(4):341–359MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Beyer H-G, Schwefel H-P (2002) Evolution strategies—a comprehensive introduction. Nat Comput 1(1):3–52MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Koza JR (1992) Genetic programming: on the programming of computers by means of natural selection. MIT Press, LondonzbMATHGoogle Scholar
  22. 22.
    Simon D (2008) Biogeography-based optimization. IEEE Trans Evolut Comput 12(6):702–713CrossRefGoogle Scholar
  23. 23.
    Slowik A, Kwasnicka H (2017) Nature inspired methods and their industry applications—swarm intelligence algorithms. IEEE Trans Ind Inform 45(99):1–1Google Scholar
  24. 24.
    Dorigo M, Birattari M, Stutzle T (2006) Ant colony optimization—artificial ants as a computational intelligence technique. IEEE Comput Intell Mag 1:28–39CrossRefGoogle Scholar
  25. 25.
    Yang X-S (2010) A new metaheuristic bat-inspired algorithm. Springer, Berlin, pp 65–74zbMATHGoogle Scholar
  26. 26.
    Karaboga D, Basturk B (2007) Artificial bee colony (ABC) optimization algorithm for solving constrained optimization problems. Springer, Berlin, pp 789–798zbMATHGoogle Scholar
  27. 27.
    Dhiman G, Kumar V (2017) Spotted hyena optimizer: a novel bio-inspired based metaheuristic technique for engineering applications. Adv Eng Softw 114:48–70CrossRefGoogle Scholar
  28. 28.
    Yang XS, Deb S (2009) Cuckoo search via levy flights. In: World congress on nature biologically inspired computing, pp 210–214Google Scholar
  29. 29.
    Dhiman G, Kumar V (2018) Multi-objective spotted hyena optimizer: a multi-objective optimization algorithm for engineering problems. Knowl Based Syst 150:175–197CrossRefGoogle Scholar
  30. 30.
    Dhiman G, Kumar V (2019) Spotted hyena optimizer for solving complex and non-linear constrained engineering problems. In: Harmony search and nature inspired optimization algorithms. Springer, pp 857–867Google Scholar
  31. 31.
    Dhiman G, Kaur A (2017) Spotted hyena optimizer for solving engineering design problems. In: 2017 international conference on machine learning and data science (MLDS), pp 114–119Google Scholar
  32. 32.
    Seyedali M, Mohammad MS, Andrew L (2014) Grey wolf optimizer. Adv Eng Softw 69:46–61CrossRefGoogle Scholar
  33. 33.
    Mirjalili S (2015) Moth-flame optimization algorithm: a novel nature-inspired heuristic paradigm. Knowl Based Syst 89:228–249CrossRefGoogle Scholar
  34. 34.
    Mirjalili S, Mirjalili SM, Hatamlou A (2016) Multi-verse optimizer: a nature-inspired algorithm for global optimization. Neural Comput Appl 27(2):495–513CrossRefGoogle Scholar
  35. 35.
    Mirjalili S (2016) SCA: a sine cosine algorithm for solving optimization problems. Knowl Based Syst 96:120–133CrossRefGoogle Scholar
  36. 36.
    Bonabeau E, Dorigo M, Theraulaz G (1999) Swarm intelligence: from natural to artificial systems. Oxford University Press, Inc., OxfordzbMATHGoogle Scholar
  37. 37.
    Wilcoxon F (1945) Individual comparisons by ranking methods. Biom Bull 1(6):80–83CrossRefGoogle Scholar
  38. 38.
    Chen Q, Liu B, Zhang Q, Liang J, Suganthan P, Qu BY (2014) Problem definitions and evaluation criteria for CEC 2015 special session on bound constrained single-objective computationally expensive numerical optimization. Technical Report, Nanyang Technological UniversityGoogle Scholar
  39. 39.
    Korting TS (2006) C4. 5 algorithm and multivariate decision trees. Image Processing Division, National Institute for Space Research-INPE, Sao Jose dos CamposGoogle Scholar
  40. 40.
    Arcelli FF, Pietro B, Marco Z (2012) Automatic detection of bad smells in code: an experimental assessment. J Object Technol 11(2):1–5Google Scholar
  41. 41.
    Abdelmoez W, Kosba E, Iesa AF (2014) Risk-based code smells detection tool. In: The international conference on computing technology and information management (ICCTIM2014)Google Scholar
  42. 42.
    Rasool G, Arshad Z (2015) A review of code smell mining techniques. J Softw Evolut Process 27(11):867–895CrossRefGoogle Scholar
  43. 43.
    Brown WH, Malveau RC, McCormick HW, Mowbray TJ (1998) AntiPatterns: refactoring software, architectures, and projects in crisis. Wiley, New YorkGoogle Scholar
  44. 44.
    Pressman RS (2005) Software engineering: a practitioner’s approach. Palgrave Macmillan, LondonzbMATHGoogle Scholar
  45. 45.
    Travassos G, Shull F, Fredericks M, Basili VR (1999) Detecting defects in object-oriented designs: using reading techniques to increase software quality. In: ACM sigplan notices, vol 34, pp 47–56. ACMGoogle Scholar
  46. 46.
    Kaur A, Dhiman G (2019) A review on search-based tools and techniques to identify bad code smells in object-oriented systems. In: Harmony search and nature inspired optimization algorithms, pp 909–921Google Scholar
  47. 47.
    Kaur A, Jain S, Goel S (2017) A support vector machine based approach for code smell detection. In: 2017 international conference on machine learning and data science (MLDS), IEEE, pp 9–14Google Scholar
  48. 48.
    Ghannem A, El Boussaidi G, Kessentini M (2016) On the use of design defect examples to detect model refactoring opportunities. Softw Qual J 24(4):947–965CrossRefGoogle Scholar
  49. 49.
    Mansoor U, Kessentini M, Maxim BR, Deb K (2017) Multi-objective code-smells detection using good and bad design examples. Softw Qual J 25(2):529–552CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London Ltd., part of Springer Nature 2019

Authors and Affiliations

  1. 1.Computer Science and Engineering DepartmentThapar Institute of Engineering & TechnologyPatialaIndia
  2. 2.Department of Computer Science and EngineeringBennett UniversityG. NoidaIndia

Personalised recommendations