Skip to main content
Log in

Analysis of code smell to quantify the refactoring

  • Original Article
  • Published:
International Journal of System Assurance Engineering and Management Aims and scope Submit manuscript

Abstract

During development process software may encounter design flaws which are referred as “code smell”. These code smells are potential faults that can be handled using suitable refactoring approach. Refactoring being an expensive process is a thought provocation task, and there is a need to identify the relationship between code smells and design metrics by considering expert’s opinion. The approach adopted in this paper ranks the design metrics, according to their criticality and need using AHP. This method helps to identify refactoring approach that may be used to improve the code and needs to be implemented before the execution phase. The proposed approach is explained considering a case study of medium sized software.

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

Similar content being viewed by others

References

  • Arcuri A, Briand L (2011) A practical guide for using statistical tests to assess randomized algorithms in software engineering. In: 33rd International conference on software engineering (ICSE), IEEE, pp 1–10

  • Bavota G, De Carluccio B, De Lucia A, Di Penta M, Oliveto R, Strollo O (2012) When does a refactoring induce bugs? An empirical study. In: IEEE 12th International Working Conference on Source Code Analysis and Manipulation (SCAM), pp 104–113

  • Cinnéide MO (2001) Automated application of design patterns: a refactoring approach. Trinity College, Dublin

    Google Scholar 

  • D’Ambros M, Bacchelli A, Lanza M (2010) On the impact of design flaws on software defects. In: 10th International conference on quality software (QSIC), IEEE, pp 23–31

  • Fontana FA, Ferme V, Zanoni M, Yamashita A (2015) Automatic metric thresholds derivation for code smell detection. In: Proceedings of the sixth international workshop on emerging trends in software metrics, IEEE Press, pp 44–53

  • Fowler M, Beck K (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, Boston

    Google Scholar 

  • Guimaraes E, Garcia A, Figueiredo E, Cai Y (2013) Prioritizing software anomalies with software metrics and architecture blueprints. In: 5th IEEE International Workshop on Modeling in Software Engineering (MiSE), pp 82–88

  • Gupta V, Kapur PK, Kumar D (2016a) Exploring disaster recovery parameters in an enterprise application. In: International conference on innovation and challenges in cyber security (ICICCS-INBUSH), IEEE, pp 294–299

  • Gupta V, Kapur PK, Kumar D (2016b) Modelling and measuring code smells in enterprise applications using TISM and two-way assessment. Int J Syst Assur Eng Manag 7(3):332–340

    Article  Google Scholar 

  • Kapur PK, Singh VB, Anand S, Yadavalli VSS (2008) Software reliability growth model with change-point and effort control using a power function of the testing time. Int J Prod Res 46(3):771–787

    Article  MATH  Google Scholar 

  • Kapur PK, Yadavalli VS, Khatri SK, Basirzadeh M (2011) Enhancing software reliability of a complex software system architecture using artificial neural-networks ensemble. Int J Reliab Qual Saf Eng 18(03):271–284

    Article  Google Scholar 

  • Kapur PK, Nagpal S, Khatri SK, Yadavalli VS (2014) Critical success factor utility based tool for ERP health assessment: a general framework. Int J Syst Assur Eng Manag 5(2):133–148

    Article  Google Scholar 

  • Kaur S, Kaur H (2015) Identification and refactoring of bad smells to improve code quality. Int J Sci Eng Res 3(8):99–102

    Google Scholar 

  • Kaur S, Maini R (2016) Analysis of various software metrics used to detect bad smells. Int J Eng Sci (IJES) 5(6):14–20

    Google Scholar 

  • Li W, Shatnawi R (2007) An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. J Syst Softw 80(7):1120–1128

    Article  Google Scholar 

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

  • Mäntylä MV, Lassenius C (2006) Subjective evaluation of software evolvability using code smells: an empirical study. Empir Softw Eng 11(3):395–431

    Article  Google Scholar 

  • Marinescu R (2004) Detection strategies: metrics-based rules for detecting design flaws. In: Proceedings 20th IEEE international conference on software maintenance, pp 350–359

  • Mittal VK, Sindhwani R, Kapur PK (2016) Two-way assessment of barriers to lean-green manufacturing system: insights from India. Int J Syst Assur Eng Manag 7(4):400–407

    Article  Google Scholar 

  • Moha N (2007) Detection and correction of design defects in object-oriented designs. In: Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, ACM, pp 949–950

  • Ouni A, Kessentini M, Sahraoui H, Inoue K, Deb K (2016) Multi-criteria code refactoring using search-based software engineering: an industrial case study. ACM Trans Softw Eng Methodol (TOSEM) 25(3):23

    Article  Google Scholar 

  • Padilha J, Pereira J, Figueiredo E, Almeida J, Garcia A, Sant’Anna C (2014) On the effectiveness of concern metrics to detect code smells: an empirical study. In: International conference on advanced information systems engineering, Springer International Publishing, pp 656–671

  • Saaty TL (1996) Decision making with dependence and feedback: the analytic network process, vol 4922. RWS publications, Pittsburgh

    Google Scholar 

  • Schumacher J, Zazworka N, Shull F, Seaman C, Shaw M (2010) Building empirical support for automated code smell detection. In: Proceedings of the 2010 ACM-IEEE international symposium on empirical software engineering and measurement

  • Singh S, Kaur S (2017) A systematic literature review: refactoring for disclosing code smells in object oriented software. Ain Shams Eng J. https://doi.org/10.1016/j.asej.2017.03.002

    Google Scholar 

  • Sjøberg DI, Yamashita A, Anda BC, Mockus A, Dybå T (2013) Quantifying the effect of code smells on maintenance effort. IEEE Trans Softw Eng 39(8):1144–1156

    Article  Google Scholar 

  • Teknomo K (2006) Analytic hierarchy process (AHP) tutorial. Revoledu.com, pp 1–20

  • Tokuda L, Batory D (1999) Evolving object-oriented designs with refactorings. In: 4th IEEE international conference on automated software engineering, pp 174–181

  • Yoshida N, Saika T, Choi E, Ouni A, Inoue K (2016) Revisiting the relationship between code smells and refactoring. In: 24th IEEE international conference on program comprehension (ICPC), pp 1–4

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rajni Sehgal.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Sehgal, R., Mehrotra, D. & Bala, M. Analysis of code smell to quantify the refactoring. Int J Syst Assur Eng Manag 8 (Suppl 2), 1750–1761 (2017). https://doi.org/10.1007/s13198-017-0658-9

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13198-017-0658-9

Keywords

Navigation