Skip to main content
Log in

Detection of Design Smells Using Adaptive Neuro-Fuzzy Approaches

  • Published:
International Journal of Fuzzy Systems Aims and scope Submit manuscript

Abstract

Software evolution, an integral part of the software development process, encompasses frequent and numerous changes and updates that may lead to complex and poor-quality systems. Software engineers and quality practitioners continually refactor the software components to mitigate the negative effects of code and design smells. Although these smells are not directly connected to design and coding bugs, they are high indicators of technical debt that may arise as bugs in future software releases. Therefore, refactoring plays a significant role in the overall software evolution process. To fix the underlying code and design smells, they must be first detected and classified. As code smells have been the focus of research in the literature, this paper focuses on detecting design smells. A novel design smell detection scheme is proposed using adaptive neuro-fuzzy approaches. This scheme can be seamlessly integrated with any refactoring scheduling and prioritization models as it is efficiently designed using a fast-training scheme based on a neuro-fuzzy architecture. In addition, the design smell detection solution relies on a reduced set of software metrics. A large custom dataset with more than 30,000 class records is created to assess the performance of the design smell detection solution. The reported performance scores confirm the superiority of the proposed technique over the existing ones. The accuracy, precision, recall, and area-under-the-curve (AUC) scores attained 0.97, 0.98, 0.98, and 0.99, respectively. Thanks to the high detection scores, design smell refactoring sequencing and prioritization routines can be further enhanced.

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

Similar content being viewed by others

Notes

  1. Some variants of this clustering type can be implemented using a soft approach such as clustering based on the Gaussian mixtures model (GMM) [20].

  2. The tool was initially called Borland Together by Borland company. Now, it is by Micro Focus company under the commercial brand of Together.

  3. https://github.com/amjadm/PhD.

  4. https://github.com/amjadm/PhD.

References

  1. Fowler, M.: Refactoring: improving the design of existing code, 2nd edn. Addison-Wesley Signature Series (Fowler), Boston (2018)

    MATH  Google Scholar 

  2. Fontana, F.A., Braione, P., Zanoni, M.: Automatic detection of bad smells in code: An experimental assessment. J. Object Technol. 11(2), 1–38 (2012)

    Google Scholar 

  3. Suryanarayana, G., Samarthyam, G., Sharma, T.: Refactoring for software design smells: managing technical debt. ACM SIGSOFT Softw. Eng. Notes 40, 36 (2015)

    Article  Google Scholar 

  4. Mansoor, U., Kessentini, M., Bechikh, S., Deb, K.: Code-smells detection using good and bad software design examples. Technical report, Technical Report (2013).

  5. Sobrinho, E.V.D.P., Lucia, A.D., Maia, M.D.A.: A systematic literature review on bad smells—5 W’s: which, when, what, who, where. IEEE Trans. Softw. Eng. 47, 1–1 (2018)

    Google Scholar 

  6. Sabir, F., Palma, F., Rasool, G., Guéhéneuc, Y.-G., Moha, N.: A systematic literature review on the detection of smells and their evolution in object-oriented and service-oriented systems. Software 49(1), 3–39 (2019)

    Google Scholar 

  7. Paiva, T., Damasceno, A., Figueiredo, E., Sant’Anna, C.: On the evaluation of code smells and detection tools. J. Softw. Eng. Res. Dev. 5(1), 7 (2017)

    Article  Google Scholar 

  8. Misbhauddin, M., Alshayeb, M.: UML model refactoring: A systematic literature review. Empir. Softw. Eng. 20(1), 206–251 (2015)

    Article  Google Scholar 

  9. AbuHassan, A., Alshayeb, M., Ghouti, L.: Software smell detection techniques: A systematic literature review. J. Softw. 33(3), e2320 (2021)

    Google Scholar 

  10. Tsoukalas, L.H., Uhrig, R.E.: Fuzzy and Neural Approaches in Engineering, 1st edn. Wiley, Hoboken (1997)

    Google Scholar 

  11. Zadeh, L.A., Aliev, R.A.: Fuzzy Logic Theory and Applications: Part I and Part II. World Scientific Publishing Company, Singapore (2018)

    Book  Google Scholar 

  12. Negnevitsky, M.: Artificial Intelligence: A Guide to Intelligent Systems. Pearson Education, London (2005)

    Google Scholar 

  13. Choinzon, M., Ueda, Y.: Detecting defects in object oriented designs using design metrics. In: Proceedings of the 2006 conference on Knowledge-Based Software Engineering: Proceedings of the Seventh Joint Conference on Knowledge-Based Software Engineering. IOS Press pp. 61–72 (2006)

  14. Brown, W.J., Malveau, R.C., Brown, W.H., McCormick, H.W., III., Mowbray, T.J.: AntiPatterns: Refactoring Software Architectures and Projects in Crisis, 1st edn. Wiley, Hoboken (1998)

    Google Scholar 

  15. Shihabudheen, K.V., Pillai, G.N.: Recent advances in neuro-fuzzy system: A survey. Knowl.-Based Syst. 152, 136–162 (2018)

    Article  Google Scholar 

  16. Tomasiello, S., Uzair, M.: Some Remarks on ANFIS for Forest Fires Prediction. In 2021 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE), pp. 1–5 (2021).

  17. Omair, M., et al.: The selection of the sustainable suppliers by the development of a decision support framework based on analytical hierarchical process and fuzzy inference system. Int. J. Fuzzy Syst. 23(7), 1986–2003 (2021)

    Article  Google Scholar 

  18. Imran, M., Agha, H., Ahmed, W., Sarkar, B., Ramzan, M.: Simultaneous customers and supplier’s prioritization: An AHP-based fuzzy inference decision support system (AHP-FIDSS). Int. J. Fuzzy Syst. 22, 10 (2020)

    Article  Google Scholar 

  19. Kumar, R., Chandrawat, R.K., Sarkar, B., Joshi, V., Majumder, A.: An advanced optimization technique for smart production using α-cut based quadrilateral fuzzy number. Int. J. Fuzzy Syst. 23(1), 107–127 (2021)

    Article  Google Scholar 

  20. Chiu, S.L.: Fuzzy model identification based on cluster estimation. J. Intell. Fuzzy Syst. 2(3), 267–278 (1994)

    Article  Google Scholar 

  21. Trevor, H., Robert, T.: The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer, New York (2009)

    MATH  Google Scholar 

  22. Bezdek, J.C., Ehrlich, R., Full, W.: FCM: The fuzzy c-means clustering algorithm. Comput. Geosci. 10(2–3), 191–203 (1984)

    Article  Google Scholar 

  23. Alazba, A., Aljamaan, H.: Code smell detection using feature selection and stacking ensemble: An empirical investigation. Inf. Softw. Technol. 138, 106648 (2021)

    Article  Google Scholar 

  24. Baqais, A., Alshayeb, M.: Automatic software refactoring: A systematic literature review. Softw. Qual. J. 2(28), 459–502 (2020)

    Article  Google Scholar 

  25. Basit, H.A., Jarzabek, S.: Detecting higher-level similarity patterns in programs. ACM Sigsoft Softw. Eng. Notes 30(5), 156–165 (2005)

    Article  Google Scholar 

  26. Basit, H.A., Jarzabek, S.: A data mining approach for detecting higher-level clones in software. IEEE Trans. Softw. Eng. 35(4), 497–514 (2009)

    Article  Google Scholar 

  27. Fourati, R., Bouassida, N., Abdallah, H.B.: A metric-based approach for anti-pattern detection in uml designs. Comput. Inf. Sci. 2011, 17–33 (2011)

    Google Scholar 

  28. Hecht, G., Rouvoy, R., Moha, N., Duchien, L.: Detecting antipatterns in Android apps. Presented at the Proceedings of the Second ACM International Conference on Mobile Software Engineering and Systems, Florence, Italy (2015).

  29. Kessentini, W., Kessentini, M., Sahraoui, H., Bechikh, S., Ouni, A.: A cooperative parallel search-based software engineering approach for code-smells detection. IEEE Trans. Software Eng. 40(9), 841–861 (2014)

    Article  Google Scholar 

  30. Ducasse, S., Rieger, M., Demeyer, S.: A language independent approach for detecting duplicated code. Presented at the Proceedings of the IEEE International Conference on Software Maintenance, (1999).

  31. Nguyen, H.A., Nguyen, T.T., Pham, N.H., Al-Kofahi, J.M., Nguyen, T.N.: Accurate and Efficient Structural Characteristic Feature Extraction for Clone Detection, pp. 440–455. Springer, Berlin (2009)

    Google Scholar 

  32. Mekruksavanich, S., Muenchaisri, P.: Using declarative meta programming for design flaws detection in object-oriented software. Int. Conf. Signal Process. Syst. 2009, 502–507 (2009)

    Google Scholar 

  33. Rattan, D., Bhatia, R., Singh, M.: Model clone detection based on tree comparison. Annu. IEEE India Conf. (INDICON) 2012, 1041–1046 (2012)

    Google Scholar 

  34. Rago, A., Marcos, C., Diaz-Pace, Andres, J.: Identifying duplicate functionality in textual use cases by aligning semantic actions. Softw. Syst. Model. 15(2), 579–603 (2016)

    Article  Google Scholar 

  35. Ratiu, D., Ducasse, S., Girba, T., Marinescu, R.: Using history information to improve design flaws detection. In: Proceedings of the Eighth European Conference on Software Maintenance and Reengineering (CSMR’04), pp. 223–232 (2004)

  36. Alalfi, M.H., Antony, E.P., Cordy, J.R.: An approach to clone detection in sequence diagrams and its application to security analysis. Softw. Syst. Model. 17, 1287–1309 (2016)

    Article  Google Scholar 

  37. Liu, H., Niu, Z., Ma, Z., Shao, W.: Suffix tree-based approach to detecting duplications in sequence diagrams. IET Softw. 5(4), 385–397 (2011)

    Article  Google Scholar 

  38. Liu, H., Ma, Z., Zhang, L., Shao, W.: Detecting duplications in sequence diagrams based on suffix trees. In 13th Asia Pacific Software Engineering Conference, Kanpur, India, 2006, pp. 269–276: IEEE Computer Society.

  39. Liu, H., Shao, W., Zhang, L., Ma, Z.: Detecting overlapping use cases. IET Softw. 1(1), 29–36 (2007)

    Article  Google Scholar 

  40. Cortellessa, V., Di Marco, A., Trubiani, C.: An approach for modeling and detecting software performance antipatterns based on first-order logics. Softw. Syst. Model. 13(1), 391–432 (2014)

    Article  Google Scholar 

  41. Maneerat, N., Muenchaisri, P.: Bad-smell prediction from software design model using machine learning techniques. Eighth Int. Joint Conf. Comput. Sci. Softw. Eng. (JCSSE) 2011, 331–336 (2011)

    Google Scholar 

  42. Ghannem, A., El Boussaidi, G., Kessentini, M.: On the use of design defect examples to detect model refactoring opportunities. Softw. Qual. J. 24(4), 947–965 (2016)

    Article  Google Scholar 

  43. Hassaine, S., Khomh, F., Gueheneuc, Y.G., Hamel, S.: IDS: An immune-inspired approach for the detection of software design smells. Seventh Int. Conf. Qual. Inform. Commun. Technol. 2010, 343–348 (2010)

    Google Scholar 

  44. Khomh, F., Vaucher, S., Guéhéneuc, Y.G., Sahraoui, H.: A Bayesian approach for the detection of code and design smells. Ninth Int. Conf. Qual. Softw. 2009, 305–314 (2009)

    Google Scholar 

  45. Ardimento, P., Aversano, L., Bernardi, M.L., Cimitile, M., Iammarino, M.: Temporal convolutional networks for just-in-time design smells prediction using fine-grained software metrics. Neurocomputing 463, 454–471 (2021)

    Article  Google Scholar 

  46. Arcelli, D., Cortellessa, V., Trubiani, C.: Experimenting the influence of numerical thresholds on model-based detection and refactoring of performance antipatterns. ECEASST 59, 03 (2013)

    Google Scholar 

  47. Moha, N., Gueheneuc, Y.-G., Duchien, A.-F.: Decor: A method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. (TSE) 36(1), 20–36 (2010)

    Article  MATH  Google Scholar 

  48. Pettersson, N., Lowe, W., Nivre, J.: Evaluation of accuracy in design pattern occurrence detection. IEEE Trans. Softw. Eng. 36(4), 575–590 (2010)

    Article  Google Scholar 

  49. Designite, https://www.designite-tools.com/designitejava/. Accessed May 2021.

  50. Sharma, T., Mishra, P., Tiwari, R.: Designite: A software design quality assessment tool. In Proceedings of the 1st International Workshop on Bringing Architectural Design Thinking into Developers' Daily Activities, pp. 1–4 (2016).

  51. Sharma, T., Efstathiou, V., Louridas, P., Spinellis, D.: On the feasibility of transfer-learning code smells using deep learning. http://arxiv.org/abs/1904.03031 (2019).

  52. Padilha, J., Figueiredo, E., Sant’Anna, C., Garcia, A.: Detecting god methods with concern metrics: An exploratory study. In: Latin-American Workshop on Aspect-Oriented Software Development (2013).

  53. ArgoUML: http://argouml.tigris.org. Accessed May 2021.

  54. ArgoUML: https://wayback.archive-it.org/all/20120128012458/http://www.isr.uci.edu/tech-transition.html. Accessed May 2021.

  55. GanttProject: https://www.ganttproject.biz/. Accessed May 2021.

  56. jEdit: http://www.jedit.org/. Accessed May 2021.

  57. JFreeChart: http://www.jfree.org/jfreechart/. Accessed May 2021.

  58. JUnit: https://junit.org. Accessed May 2021.

  59. Xerces: http://xerces.apache.org/. Accessed May 2021.

  60. Genero, M., Piattini, M., Calero, C.: A survey of metrics for UML class diagrams. J. Object Technol. 4(9), 59–92 (2005)

    Article  Google Scholar 

  61. Lorenz, M., Kidd, J.: Object-Oriented Software Metrics. Prentice Hall Englewood Cliffs, Hoboken (1994)

    Google Scholar 

  62. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)

    Article  Google Scholar 

  63. Bansiya, J.: Class cohesion metric for object oriented designs. J. Object-Oriented Program. 11(8), 47–52 (1999)

    Google Scholar 

  64. Henry, S., Kafura, D.: Software structure metrics based on information flow. IEEE Trans. Softw. Eng. 5, 510–518 (1981)

    Article  Google Scholar 

  65. Jang, J.-S.: ANFIS: Adaptive-network-based fuzzy inference system. IEEE Trans. Syst. Man Cybern. 23(3), 665–685 (1993)

    Article  Google Scholar 

  66. Priyono, A., Ridwan, M., Alias, A.J., Rahmat, R.A.O., Hassan, A., Ali, M.A.M.: Generation of fuzzy rules with subtractive clustering. Jurnal Teknologi 43(1), 143–153 (2012)

    Google Scholar 

  67. Hammouda, K., Karray, F.: A Comparative Study of Data Clustering Techniques. University of Waterloo, Ontario (2000)

    Google Scholar 

  68. Oliveto, R., Khomh, F., Antoniol, G., Gueheneuc, Y.G.: Numerical signatures of antipatterns: An approach based on B-splines. In 14th European Conference on Software Maintenance and Reengineering, pp. 248–251 (2010).

  69. Özgür, A., Erdem, H.: A review of KDD99 dataset usage in intrusion detection and machine learning between 2010 and 2015. PeerJ 4, e1954v1 (2016)

    Google Scholar 

  70. Shepperd, M., Kadoda, G.: Using simulation to evaluate prediction techniques [for software]. In: Proceedings Seventh International Software Metrics Symposium, IEEE, pp. 349–359 (2001).

  71. Japkowicz, N., Stephen, S.: The class imbalance problem: A systematic study. Intell. Data Anal. 6(5), 429–449 (2002)

    Article  MATH  Google Scholar 

  72. Bataineh, K., Naji, M., Saqer, M.: A comparison study between various fuzzy clustering algorithms. Jordan J. Mech. Ind. Eng. 5, 4 (2011)

    Google Scholar 

  73. Claes, W., Per, R., Martin, H., Magnus, C., Björn, R., Wesslén, A.: Experimentation in software engineering: An introduction. http://books.google.com/books (2000).

  74. de Oliveira Barros, M., Dias-Neto, A.C.: Threats to validity in search-based software engineering empirical studies. RelaTe-DIA 5, 1 (2011)

    Google Scholar 

  75. Capra, E., Francalanci, C., Merlo, F., Rossi-Lamastra, C.: Firms’ involvement in Open Source projects: A trade-off between software structural quality and popularity. J. Syst. Softw. 84(1), 144–161 (2011)

    Article  Google Scholar 

Download references

Acknowledgements

A. AbuHassan and M. Alshayeb would like to acknowledge the support provided by the Deanship of Scientific Research at King Fahd University of Petroleum and Minerals. L. Ghouti acknowledges the support of Prince Sultan University.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohammad Alshayeb.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

AbuHassan, A., Alshayeb, M. & Ghouti, L. Detection of Design Smells Using Adaptive Neuro-Fuzzy Approaches. Int. J. Fuzzy Syst. 24, 1927–1943 (2022). https://doi.org/10.1007/s40815-022-01248-5

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s40815-022-01248-5

Keywords

Navigation