Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/ICPC.2017.32acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Smells are sensitive to developers!: on the efficiency of (un)guided customized detection

Published: 20 May 2017 Publication History

Abstract

Code smells indicate poor implementation choices that may hinder program comprehension and maintenance. Their informal definition allows developers to follow different heuristics to detect smells in their projects. Machine learning has been used to customize smell detection according to the developer's perception. However, such customization is not guided (i.e. constrained) to consider alternative heuristics used by developers when detecting smells. As a result, their customization might not be efficient, requiring a considerable effort to reach high effectiveness. In fact, there is no empirical knowledge yet about the efficiency of such unguided approaches for supporting developer-sensitive smell detection. This paper presents Histrategy, a guided customization technique to improve the efficiency on smell detection. Histrategy considers a limited set of detection strategies, produced from different detection heuristics, as input of a customization process. The output of the customization process consists of a detection strategy tailored to each developer. The technique was evaluated in an experimental study with 48 developers and four types of code smells. The results showed that Histrategy is able to outperform six widely adopted machine learning algorithms - used in unguided approaches - both in effectiveness and efficiency. It was also confirmed that most developers benefit from using alternative heuristics to: (i) build their tailored detection strategies, and (ii) achieve efficient smell detection.

References

[1]
M. Abbes, F. Khomh, Y.-G. Gueheneuc, and G. Antoniol, "An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension," in 15th European Conference on Software Maintenance and Reengineering (CSMR). IEEE, 2011, pp. 181--190.
[2]
M. Fowler, Refactoring: Improving the Design of Existing Code. Boston, MA, USA: Addison-Wesley, 1999.
[3]
W. Oizumi, A. Garcia, L. da Silva Sousa, B. Cafeo, and Y. Zhao, "Code anomalies flock together: Exploring code anomaly agglomerations for locating design problems," in Proceedings of the 38th International Conference on Software Engineering, ser. ICSE '16. New York, NY, USA: ACM, 2016, pp. 440--451. {Online}. Available
[4]
F. Khomh, M. D. Penta, Y.-G. Guéhéneuc, and G. Antoniol, "An exploratory study of the impact of antipatterns on class change- and fault-proneness," Empirical Software Engineering, vol. 17, no. 3, pp. 243--275, Aug. 2011.
[5]
M. V. Mäntylä, "An experiment on subjective evolvability evaluation of object-oriented software: explaining factors and interrater agreement," in International Symposium on Empirical Software Engineering, 2005.
[6]
M. V. Mäntylä and C. Lassenius, Subjective evaluation of software evolvability using code smells: An empirical study. Springer, May 2006, vol. 11.
[7]
J. Schumacher, N. Zazworka, F. Shull, C. Seaman, and M. Shaw, "Building empirical support for automated code smell detection," Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement - ESEM '10, p. 1, 2010.
[8]
J. A. M. Santos, M. G. de Mendonça, and C. V. A. Silva, "An exploratory study to investigate the impact of conceptualization in god class detection," in Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering, ser. EASE '13. New York, NY, USA: ACM, 2013, pp. 48--59. {Online}. Available
[9]
R. Marinescu, "Detection Strategies: Metrics-Based Rules for Detecting Design Flaws," in Proceedings of the 20th IEEE International Conference on Software Maintenance, ser. ICSM '04. Washington, DC, USA: IEEE Computer Society, 2004, pp. 350--359. {Online}. Available: http://dl.acm.org/citation.cfm?id=1018431.1021443
[10]
M. Lanza, R. Marinescu, and S. Ducasse, Object-Oriented Metrics in Practice. Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2005.
[11]
M. Munro, "Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-Code," 11th IEEE International Software Metrics Symposium (METRICS'05), pp. 15--15, 2005.
[12]
F. Khomh, S. Vaucher, Y.-G. Guéhéneuc, and H. Sahraoui, "BDTEX: A GQM-based Bayesian Approach for the Detection of Antipatterns," Journal of Systems and Software, vol. 84, no. 4, pp. 559--572, Apr. 2011. {Online}. Available
[13]
N. Moha, Y.-G. Gueheneuc, L. Duchien, and A. F. Le Meur, "DECOR: A Method for the Specification and Detection of Code and Design Smells," IEEE Transactions on Software Engineering, vol. 36, no. 1, pp. 20--36, Jan. 2010.
[14]
F. A. Fontana, E. Mariani, A. Mornioli, R. Sormani, and A. Tonello, "An Experience Report on Using Code Smells Detection Tools," 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops, pp. 450--457, Mar. 2011. {Online}. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5954446
[15]
F. Palomba, G. Bavota, M. Di Penta, R. Oliveto, D. Poshyvanyk, and A. De Lucia, "Mining Version Histories for Detecting Code Smells," IEEE Transactions on Software Engineering, vol. 41, no. 5, 2015.
[16]
F. A. Fontana, V. Ferme, and S. Spinelli, "Investigating the impact of code smells debt on quality code evaluation," 2012 Third International Workshop on Managing Technical Debt (MTD), pp. 15--22, Jun. 2012. {Online}. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6225993
[17]
R. Marinescu, "Detecting Design Flaws via Metrics in Object-Oriented Systems A Metrics-Based Approach for Problem Detection," International Conference and Technology of Object-Oriented Languages and Systems (TOOLS), pp. 173--182, 2001.
[18]
M. Ferreira, E. Barbosa, I. Macia, R. Arcoverde, and A. Garcia, "Detecting architecturally-relevant code anomalies: a case study of effectiveness and effort," in Proceedings of the 29th Annual ACM Symposium on Applied Computing. ACM, 2014, pp. 1158--1163.
[19]
"PMD," http://pmd.sourceforge.net/, March, 2017.
[20]
"Checkstyle," http://checkstyle.sourceforge.net/, March, 2017.
[21]
"inFusion," https://www.intooitus.com/products/infusion, March, 2017.
[22]
"JDeodorant," http://www.jdeodorant.com/, March, 2017.
[23]
F. Arcelli Fontana, M. V. Mäntylä, M. Zanoni, and A. Marino, "Comparing and experimenting machine learning techniques for code smell detection," Empirical Software Engineering, Jun. 2015.
[24]
A. Maiga, N. Ali, N. Bhattacharya, A. Sabane, Y.-G. Gueheneuc, and E. Aimeur, "SMURF: A SVM-based Incremental Anti-pattern Detection Approach," 2012 19th Working Conference on Reverse Engineering, pp. 466--475, Oct. 2012.
[25]
F. A. Fontana, P. Braione, and M. Zanoni, "Automatic detection of bad smells in code: An experimental assessment," Journal of Object Technology, vol. 11, no. 2, 2012.
[26]
F. Khomh, S. Vaucher, Y. G. Guéhéneuc, and H. Sahraoui, "A bayesian approach for the detection of code and design smells," in Quality Software, 2009. QSIC'09. 9th International Conference on. IEEE, 2009, pp. 305--314.
[27]
L. Amorim, E. Costa, N. Antunes, B. Fonseca, and M. Ribeiro, "Experience report: Evaluating the effectiveness of decision trees for detecting code smells," in IEEE 26th International Symposium on Software Reliability Engineering (ISSRE), ser. ISSRE '15. Washington, DC, USA: IEEE Computer Society, 2015, pp. 261--269.
[28]
T. M. Mitchell, Machine learning, ser. McGraw-Hill series in computer science. Boston (Mass.), Burr Ridge (Ill.), Dubuque (Iowa): McGraw-Hill, 1997. {Online}. Available: http://opac.inria.fr/record=b1093076
[29]
H. Liu, L. Yang, Z. Niu, Z. Ma, and W. Shao, "Facilitating software refactoring with appropriate resolution order of bad smells," in Proceedings of the the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, ser. ESEC/FSE '09. New York, NY, USA: ACM, 2009, pp. 265--268. {Online}. Available
[30]
M. Hozano, N. Antunes, B. Fonseca, and E. Costa, "Evaluating the accuracy of machine learning algorithms on detecting code smells for different developers," in ICEIS 2017 - Proceedings of the 19th International Conference on Enterprise Information Systems, Porto, Portugal, April 26--29, 2017 (in press).
[31]
G. Rasool and Z. Arshad, "A review of code smell mining techniques," Journal of Software: Evolution and Process, pp. n/a--n/a, sep 2015. {Online}. Available:
[32]
N. Roperia, JSmell: A Bad Smell detection tool for Java systems. California State University, 2009.
[33]
M. Hozano, "ICPC 2017 - Replication Package," http://goo.gl/tuvxUy, March, 2017.
[34]
R. Baeza-Yates, B. Ribeiro-Neto et al., Modern information retrieval. ACM press New York, 1999, vol. 463.
[35]
N. Maneerat and P. Muenchaisri, "Bad-smell prediction from software design model using machine learning techniques," 2011 Eighth International Joint Conference on Computer Science and Software Engineering (JCSSE), pp. 331--336, May 2011. {Online}. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5930143
[36]
C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén, Experimentation in Software Engineering: An Introduction. Norwell, MA, USA: Kluwer Academic Publishers, 2000.
[37]
F. Palomba, G. Bavota, M. D. Penta, R. Oliveto, and A. D. Lucia, "Do They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells," 2014 IEEE International Conference on Software Maintenance and Evolution, pp. 101--110, Sep. 2014.

Cited By

View all
  • (2022)Smell Patterns as Indicators of Design DegradationProceedings of the XXXVI Brazilian Symposium on Software Engineering10.1145/3555228.3555243(311-320)Online publication date: 5-Oct-2022
  • (2020)Applying Machine Learning to Customized Smell DetectionProceedings of the XXXIV Brazilian Symposium on Software Engineering10.1145/3422392.3422427(233-242)Online publication date: 21-Oct-2020
  • (2020)Recommending Composite Refactorings for Smell RemovalProceedings of the XXXIV Brazilian Symposium on Software Engineering10.1145/3422392.3422423(72-81)Online publication date: 21-Oct-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPC '17: Proceedings of the 25th International Conference on Program Comprehension
May 2017
399 pages
ISBN:9781538605356

Sponsors

Publisher

IEEE Press

Publication History

Published: 20 May 2017

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '17
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Smell Patterns as Indicators of Design DegradationProceedings of the XXXVI Brazilian Symposium on Software Engineering10.1145/3555228.3555243(311-320)Online publication date: 5-Oct-2022
  • (2020)Applying Machine Learning to Customized Smell DetectionProceedings of the XXXIV Brazilian Symposium on Software Engineering10.1145/3422392.3422427(233-242)Online publication date: 21-Oct-2020
  • (2020)Recommending Composite Refactorings for Smell RemovalProceedings of the XXXIV Brazilian Symposium on Software Engineering10.1145/3422392.3422423(72-81)Online publication date: 21-Oct-2020
  • (2017)Understanding the impact of refactoring on smells: a longitudinal study of 23 software projectsProceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering10.1145/3106237.3106259(465-475)Online publication date: 21-Aug-2017

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