skip to main content
10.1145/3183440.3183460acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
short-paper

Detecting and managing code smells: research and practice

Published: 27 May 2018 Publication History

Abstract

Code smells indicate the presence of quality problems that make the software hard to maintain and evolve. A software development team can keep their software maintainable by identifying smells and refactor them. In the first part of the session, we present a comprehensive overview of the literature concerning smells covering various dimensions of the metaphor including defining characteristics, classification, types, as well as causes and impacts of smells. In the second part, we delve into the details of smell detection methods prevailed currently both in research prototypes and industrial tools. The final part present actionable and pragmatic strategies for practitioners to avoid, detect, and eradicate smells from their codebase.

References

[1]
Gabriele Bavota, Abdallah Qusef, Rocco Oliveto, Andrea De Lucia, and David Binkley. 2012. An empirical analysis of the distribution of unit test smells and their impact on software maintenance. In IEEE International Conference on Software Maintenance, ICSM. Universita di Salerno, Salerno, Italy, IEEE, 56--65.
[2]
Gabriele Bavota, Abdallah Qusef, Rocco Oliveto, Andrea De Lucia, and Dave Binkley. 2014. Are test smells really harmful? An empirical study. Empirical Software Engineering 20, 4 (May 2014), 1052--1094.
[3]
Martin Fowler. 1999. Refactoring: Improving the Design of Existing Programs (1 ed.). Addison-Wesley Professional.
[4]
F. Hermans, M. Pinzger, and A. van Deursen. 2012. Detecting code smells in spreadsheet formulas. In 28th IEEE International Conference on Software Maintenance (ICSM). 409--418.
[5]
Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel, and Foutse Khomh. 2013. Mining the relationship between anti-patterns dependencies and fault-proneness. In Proceedings - Working Conference on Reverse Engineering, WCRE. Ecole Polytechnique de Montreal, Montreal, Canada, IEEE, 351--360.
[6]
Foutse Khomh, Massimiliano Di Penta, Yann-Gaël Guéhéneuc, and Giuliano Antoniol. 2012. An exploratory study of the impact of antipatterns on class change- and fault-proneness. Empirical Software Engineering 17, 3 (June 2012), 243--275.
[7]
Foutse Khomh, Stéphane Vaucher, Yann-Gaël Guéhéneuc, and Houari Sahraoui. 2009. A Bayesian Approach for the Detection of Code and Design Smells. In QSIC '09: Proceedings of the 2009 Ninth International Conference on Quality Software. IEEE Computer Society, 305--314.
[8]
Philippe Kruchten, Robert L. Nord, and Ipek Ozkaya. 2012. Technical Debt: From Metaphor to Theory and Practice. IEEE Software 29, 6 (2012), 18--21.
[9]
R Marinescu. 2005. Measurement and quality in object-oriented design. In 21st IEEE International Conference on Software Maintenance (ICSM'05). Universitatea Politehnica din Timisoara, Timisoara, Romania, IEEE, 701--704.
[10]
Naouel Moha, Yann-Gaël Guéhéneuc, Laurence Duchien, and Anne-Françoise Le Meur. 2010. DECOR: A Method for the Specification and Detection of Code and Design Smells. IEEE Trans. Software Eng. 36, 1 (2010), 20--36.
[11]
Leon Moonen and Aiko Yamashita. 2012. Do code smells reflect important maintainability aspects?. In ICSM '12: Proceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM). Simula Research Laboratory, IEEE Computer Society.
[12]
Ali Ouni, Raula Gaikovina Kula, Marouane Kessentini, and Katsuro Inoue. 2015. Web Service Antipatterns Detection Using Genetic Programming. In GECCO '15: Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation. Osaka University, ACM, 1351--1358.
[13]
Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Denys Poshyvanyk, and Andrea De Lucia. 2015. Mining version histories for detecting code smells. IEEE Transactions on Software Engineering 41, 5 (May 2015), 462--489.
[14]
Mikhail Perepletchikov and Caspar Ryan. 2011. A controlled experiment for evaluating the impact of coupling on the maintainability of service-oriented software. IEEE Transactions on Software Engineering 37, 4 (Aug. 2011), 449--465.
[15]
Aminata Sabané, Massimiliano Di Penta, Giuliano Antoniol, and Yann-Gaël Guéhéneuc. 2013. A Study on the Relation between Antipatterns and the Cost of Class Unit Testing. In CSMR '13: Proceedings of the 2013 17th European Conference on Software Maintenance and Re engineering. IEEE Computer Society, 167--176.
[16]
Tushar Sharma. 2016. Presentation smells: How not to prepare your conference presentation. http://xrds.acm.org/blog/2016/06/presentation-smells-to-avoid-in-conference-presentation/. (2016). {Online; accessed 12-Oct-2017}.
[17]
Tushar Sharma, Marios Fragkoulis, Stamatia Rizou, Magiel Bruntink, and Diomidis Spinellis. 2018. Smelly Relations: Measuring and Understanding Database Schema Quality. In Proceedings of 40th International Conference on Software Engineering (ICSE '18).
[18]
Tushar Sharma, Marios Fragkoulis, and Diomidis Spinellis. 2016. Does Your Configuration Code Smell?. In Proceedings of the 13th International Workshop on Mining Software Repositories (MSR'16). 189--200.
[19]
Tushar Sharma, Pratibha Mishra, and Rohit Tiwari. 2016. Designite --- A Software Design Quality Assessment Tool. In Proceedings of the First International Workshop on Bringing Architecture Design Thinking into Developers' Daily Activities (BRIDGE '16). ACM.
[20]
Tushar Sharma and Diomidis Spinellis. 2017. Definitions of a Software Smell. (Nov. 2017).
[21]
Tushar Sharma and Diomidis Spinellis. 2018. A survey on software smells. Journal of Systems and Software 138 (2018), 158 -- 173.
[22]
Tushar Sharma, Girish Suryanarayana, and Ganesh Samarthyam. 2015. Challenges to and Solutions for Refactoring Adoption: An Industrial Perspective. IEEE Software 32, 6 (Oct. 2015), 44--51.
[23]
Girish Suryanarayana, Ganesh Samarthyam, and Tushar Sharma. 2014. Refactoring for Software Design Smells: Managing Technical Debt (1 ed.). Morgan Kaufmann.
[24]
Aiko Yamashita. 2014. Assessing the capability of code smells to explain maintenance problems: an empirical study combining quantitative and qualitative data. Empirical Software Engineering 19, 4 (2014), 1111--1143.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '18: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings
May 2018
231 pages
ISBN:9781450356633
DOI:10.1145/3183440
  • Conference Chair:
  • Michel Chaudron,
  • General Chair:
  • Ivica Crnkovic,
  • Program Chairs:
  • Marsha Chechik,
  • Mark Harman
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 May 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. antipatterns
  2. code quality
  3. code smells
  4. smell detection tools
  5. software maintenance
  6. software quality
  7. technical debt

Qualifiers

  • Short-paper

Funding Sources

  • Marie Sklodowska-Curie Innovative Training Networks

Conference

ICSE '18
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 23 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

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