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.
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
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
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
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
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
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
Kaur S, Kaur H (2015) Identification and refactoring of bad smells to improve code quality. Int J Sci Eng Res 3(8):99–102
Kaur S, Maini R (2016) Analysis of various software metrics used to detect bad smells. Int J Eng Sci (IJES) 5(6):14–20
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
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
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
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
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
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
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
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
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
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
Received:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-017-0658-9