Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2791405.2791463acmotherconferencesArticle/Chapter ViewAbstractPublication PageswciConference Proceedingsconference-collections
research-article

Prioritization of Classes for Refactoring: A Step towards Improvement in Software Quality

Published: 10 August 2015 Publication History

Abstract

Bad Smells are certain structures in the software which violates the design principles and ruin the software quality. In order to deals with the bad smells, often refactoring treatment is provided in the code which further improves the software quality. However, it's not possible to refactor each and every class of the software in maintenance phase due to certain deadlines. Prioritization of classes helps the developer to identify the software portions requiring urgent refactoring. In the current study, we propose a framework to identify the potential classes which immediately require refactoring based on the bad smells as well as design characteristics. We evaluate our approach on medium sized open-source systems ORDrumbox. Four types of code-smells Feature Envy, Long Method, God Class and Type Checking were identified and well known Chidamber and Kemerer metric suite is used to evaluate the object oriented characteristics. Both are combined in certain ratio to calculate new proposed metric Quality Depreciation Index Rule (QDIR) for each class. Classes are further arranged as per their QDIR values to identify the severely affected classes requiring immediate refactoring treatment. This study works on 80:20 principles conveying 80% of the code quality can be improved by just providing refactoring treatment to 20% of the severely affected classes. Results reflects that the bad smells and design metrics can be used as an important source of information to quantify the flaws in the classes, thus helpful to maintainers in performing their task under strict time constraints while maintaining the overall software quality.

References

[1]
Abreu, F.B. and Carapuca, R. 1994. Object-Oriented Software Engineering: Measuring and Controlling the Development Process. Proc. 4th International Conference on Software Quality, McLean, Virginia, USA. DOI=http://citeseerx.ist.psu.edu/viewdoc/download?doi=l 0.1.1.14.1382&rep=rep1&type=pdf.
[2]
Basili, V. R., Briand, L., and Melo, W.L. 1996. A validation of object-oriented design metrics as quality indicators. Software Engineering, IEEE Transactions on 22.10: pp. 751--761. DOI= http://dx.doi.org/10.1109/32.544352.
[3]
Chidamber, S. R. and Kemerer C. F. 1994. A Metrics Suite for OO Design, IEEE Transactions on Software Engineering, vol. 20, no 6, pp. 476--493. DOI= http://dx.doi.org/10.1109/32.295895.
[4]
Dagpinar, M. and Jhanke, J. H. 2003. Predicting Maintainability with object-oriented metric- an empirical comparison, Proc. 10th Working Conference on Reverse Engineering (WCRE 03), pp. 155--164. DOI= 10.1109/WCRE.2003.1287246.
[5]
Deligiannis, I., Shepperd, M., Roumeliotis, M. and Stamelos, I. 2003, An Empirical Investigation of an Object-Oriented Design Heuristic for Maintainability, J. Syst. Softw., 65(2): pp. 127--139. DOI= http://dx.doi.org/10.1016/S0164-1212(02)00054-7.
[6]
Elish M. O. and Elish, K. O. 2009. Application of TreeNet in Predicting Object-Oriented Software Maintainability: A Comparative Study, European Conference on Software Maintenance and Reengineering, pp. 1534--5351. DOI= http://dx.doi.org/10.1109%2fCSMR.2009.57
[7]
Fontana, F.A. and Braione, P. and Zanoni, M. 2012. Automatic detection of bad smells in code: An experimental assess, Journal of Object Technology, vol. 11 No. 2, pp. 1--38. DOI=http://dx.doi.org/10.5381/jot.2012.11.2.a5.
[8]
Fowler, M. and Beck, K. 1999. Refactoring: improving the design of existing code, Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA. DOI=10.10007/3-540-45672-4_31.
[9]
IEEE Standard. 1219-1993 IEEE Standard for Software Maintenance. INSPEC Accession Number: 4493167 DOI= http://dx.doi.org/10.1109/IEEESTD.1993.115570.
[10]
Kataoka, Y., Imai, T., Andou, H. and Fukaya, T. 2002. A Quantitative Evaluation of Maintainability Enhancement by Refactoring, Proc. International Conference on Software Maintenance (ICSM'02), pp. 576--585. DOI= http://dx.doi.org/10.1109/ICSM.2002.1167822.
[11]
Khomh, F. and Vaucher, S. and Gueheneuc, Y.G. and Sahraoui, H. 2009. A bayesian approach for the detection of code and design smells, 9th International Conference on Quality Software, IEEE, pp. 305--314. DOI= http://dx.doi.org/10.1109/QSIC.2009.47.
[12]
Koten, C. V. and Gray, A. R. 2006. An application of Bayesian network for predicting object-oriented software maintainability, Information and Software Technology, vol. 48, no. 1, pp. 59--67. DOI= http://dx.doi.org/10.1016/j.infsof.2005.03.002.
[13]
Li, W. and Shatnawi, R. 2007. An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution, Journal of Systems and Software, Vol. 80, No. 7, pp. 1120--1128. DOI= http://dx.doi.Org/10.1016/j.jss.2006.10.018.
[14]
Lorenz, M. and Kidd, J. 1994. Object-oriented software metrics: a practical guide, Prentice-Hall, Inc.
[15]
Lozano, A., Wermelinger, M. and Nuseibeh, B. 2007. Assessing the impact of bad smells using historical information, In Proceedings of Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSEjoint meeting. Dubrovnik, Croatia: ACM New York, NY, USA, pp. 31--34. DOI= http://dx.doi.org/10.1145/1294948.1294957.
[16]
Malhotra, R. and Chug, A. 2012. Software Maintainability Prediction using Machine Learning Algorithms, Software Engineering: An International Journal (SEIJ), vol. 2, no. 2, pp. 19--36. DOI= http://archive-edu.com/page/1401611/2013-02-15/http://www.seij.dce.edu/current.html.
[17]
Malhotra, R. and Chug, A. 2014. Application of group method of data handling model for software maintainability prediction using OO systems, International Journal of System Assurance, vol. 5 no. 2, pp. 165--173. DOI= http://link.springer.com/article/10.1007%2Fsl3198-014-0227-4.
[18]
Martin, R.C. 2003. Agile Software Development: Principles, Patterns and Practices, Pearson, pp. 552.
[19]
Mens, T., Tourwe, T., Munoz, F., 2003. Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring, Proceedings of the International Workshop on Principles of Software Evolution, Helsinki, Finland. Engineering and Management, ISSN 0975-6809, vol. 5, no. 2, pp. 165--173. DOI= http://dx.doi.org/10.1109/IWPSE.2003.1231207.
[20]
Monden, A., Nakae, D., Kamiya, T., Sato, S. and Matsumoto, K. 2002. Software Quality Analysis by Code Clones in Industrial Legacy Software, Proc. Int'l Symp. Softw. Metrics, pp. 87--94. DOI= http://dx.doi.org/10.1109/METRIC.2002.1011328.
[21]
Shatnawi, R., Li, W. and Swain, J. 2009. Finding software metrics threshold values using ROC curves, Journal of software maintenance and evolution: research and practice, vol. 22, no. 1, pp. 1--16. DOI= http://dx.doi.org/10.1002/smr.v22:1.
[22]
Simon, F. S., Lewerentz, C. 2001. Metrics based refactoring, Proc. European Conf. Software Maintenance and Reengineering, IEEE Computer Society Washington, DC, USA, pp. 30--38. DOI= http://dx.doi.Org/10.1109/.2001.914965.
[23]
Stroggylos, K. and Spinellis, D. 2007. Refactoring -- Does it improve Software Quality?, Proc. 5th International Workshop on Software Quality, pp. 1--6. DOI= http://dx.doi.org/10.1109/WOSQ.2007.ll.
[24]
Wilking, D., Khan, U. F. and Kowalewski, S. 2007. An Empirical Evaluation of Refactoring, e-Informatica, Software Engineering Journal, vol. 1, no. 1, pp. 27--42.
[25]
Ouni, A., Kessentini, M., Bechikh, S. and Sahraoui, H. 2015. Prioritizing code-smells correction tasks using chemical reaction optimization, Software Quality Journal, vol. 23, no. 2, pp. 323--361. DOI= http://dx.doi.org/10.1007/sll219-014-9233-7.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
WCI '15: Proceedings of the Third International Symposium on Women in Computing and Informatics
August 2015
763 pages
ISBN:9781450333610
DOI:10.1145/2791405
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 August 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Bad Smell
  2. Object Oriented Metrics
  3. Refactoring
  4. Software Maintenance
  5. Software Quality

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

WCI '15

Acceptance Rates

WCI '15 Paper Acceptance Rate 98 of 452 submissions, 22%;
Overall Acceptance Rate 98 of 452 submissions, 22%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)2
Reflects downloads up to 24 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Prioritizing God Class Code Smells in Object-Oriented Software Using Fuzzy Inference SystemArabian Journal for Science and Engineering10.1007/s13369-024-08826-949:9(12743-12770)Online publication date: 5-Mar-2024
  • (2024)Deriving change-prone thresholds from software evolution using ROC curvesThe Journal of Supercomputing10.1007/s11227-024-06366-5Online publication date: 20-Jul-2024
  • (2024)Severity Factor (SF)Journal of Software: Evolution and Process10.1002/smr.259036:5Online publication date: 25-Apr-2024
  • (2023)Code smell prioritization in object‐oriented software systemsJournal of Software: Evolution and Process10.1002/smr.253635:12Online publication date: 29-Jan-2023
  • (2021)Techniques for Calculating Software Product Metrics Threshold Values: A Systematic Mapping StudyApplied Sciences10.3390/app11231137711:23(11377)Online publication date: 1-Dec-2021
  • (2021)Architecture Smells and Pareto Principle: A Preliminary Empirical Exploration2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR)10.1109/MSR52588.2021.00031(190-194)Online publication date: May-2021
  • (2021)Toward a Software Bad Smell Prioritization Model for Software MaintainabilityArabian Journal for Science and Engineering10.1007/s13369-021-05766-6Online publication date: 9-Jun-2021
  • (2020)Exploiting bad-smells and object-oriented characteristics to prioritize classes for refactoringInternational Journal of System Assurance Engineering and Management10.1007/s13198-020-01001-xOnline publication date: 18-Jun-2020
  • (2020)Decision Making on Critical Component Using Combined ApproachAutomated Software Testing10.1007/978-981-15-2455-4_8(143-165)Online publication date: 4-Feb-2020
  • (2019)Decomposing God Classes at Siemens2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME.2019.00027(169-180)Online publication date: Sep-2019
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media