[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1454247.1454261acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Seven habits of a highly effective smell detector

Published: 09 November 2008 Publication History

Abstract

The process of refactoring code---changing its structure while preserving its meaning---has been identified as an important way of maintaining code quality over time. However, it is sometimes difficult for progammers to identify which pieces of code are in need of refactoring. "Smell detectors" are designed to help programmers in this task, but most smell detectors do not mesh well with "floss refactoring," the recommended tactic in which refactoring and programming are finely interleaved. In this paper we present a smell detector that we have built with floss refactoring in mind by combining seven habits that we postulate are important to consider when designing usable smell detectors. We hope that this combination can help the designers of future smell detectors build tools that align with the way that programmers refactor.

References

[1]
M. Bisanz. Pattern-based smell detection in TTCN-3 test suites. Master's thesis, Georg-August-Universität Göttingen, Dec 2006.
[2]
E. v. Emden and L. Moonen. Java quality assurance by detecting code smells. In Proceedings of the Ninth Working Conference on Reverse Engineering, pages 97--106, Washington, DC, USA, 2002. IEEE Computer Society.
[3]
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999.
[4]
B. Geppert and F. Rosler. Effects of refactoring legacy protocol implementations: A case study. In METRICS '04: Proceedings of the 10th International Symposium on Software Metrics, pages 14--25, Washington, DC, USA, 2004. IEEE Computer Society.
[5]
S. Hayashi, M. Saeki, and M. Kurihara. Supporting refactoring activities using histories of program modification. IEICE - Trans. Inf. Syst., E89-D(4):1403--1412, 2006.
[6]
Y. Kataoka, T. Imai, H. Andou, and T. Fukaya. A quantitative evaluation of maintainability enhancement by refactoring. In ICSM '02: Proceedings of the International Conference on Software Maintenance, page 576, Washington, DC, USA, 2002. IEEE Computer Society.
[7]
M. Kersten and G. C. Murphy. Mylar: a degree-of-interest model for IDEs. In AOSD '05: Proceedings of the 4th International Conference on Aspect-Oriented Software Development, pages 159--168, New York, NY, USA, 2005. ACM.
[8]
R. Kolb, D. Muthig, T. Patzke, and K. Yamauchi. A case study in refactoring a legacy component for reuse in a product line. In ICSM '05: Proceedings of the 21st IEEE International Conference on Software Maintenance, pages 369--378, Washington, DC, USA, 2005. IEEE Computer Society.
[9]
M. V. Mäntylä. An experiment on subjective evolvability evaluation of object-oriented software: explaining factors and interrater agreement. In Proceedings of the International Symposium on Empirical Software Engineering, pages 287--296, November 2005.
[10]
E. Murphy-Hill and A. P. Black. Refactoring tools: Fitness for purpose. IEEE Software, 25(5), September-October 2008.
[11]
C. Parnin and C. Görg. Building usage contexts during program comprehension. In ICPC '06: Proceedings of the 14th IEEE International Conference on Program Comprehension, pages 13--22, Washington, DC, USA, 2006. IEEE Computer Society.
[12]
C. Parnin and C. Gorg. Design guidelines for ambient software visualization in the workplace. Visualizing Software for Understanding and Analysis, 2007. VISSOFT 2007. 4th IEEE International Workshop on, pages 18--25, June 2007.
[13]
C. Parnin, C. Görg, and O. Nnadi. A catalogue of lightweight visualizations to support code smell inspection. In Proceedings of the 2008 ACM Symposium on Software Visualization, 2008.
[14]
F. Simon, F. Steinbrückner, and C. Lewerentz. Metrics based refactoring. In Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, pages 30--38, Washington, DC, USA, 2001. IEEE Computer Society.
[15]
S. Slinger. Code smell detection in Eclipse. Master's thesis, Delft University of Technology, March 2005.
[16]
N. Tsantalis, T. Chaikalis, and A. Chatzigeorgiou. JDeodorant: Identification and removal of type-checking bad smells. In CSMR, pages 329--331. IEEE Computing Society, 2008.
[17]
P. Weißgerber and S. Diehl. Are refactorings less error-prone than other changes? In MSR '06: Proceedings of the 2006 International Workshop on Mining Software Repositories, pages 112--118, New York, NY, USA, 2006. ACM.
[18]
Z. Xing and E. Stroulia. Refactoring practice: How it is and how it should be supported --- an Eclipse case study. In ICSM '06: Proceedings of the 22nd IEEE International Conference on Software Maintenance, pages 458--468, Washington, DC, USA, 2006. IEEE Computer Society.

Cited By

View all
  • (2021)Software smell detection techniquesJournal of Software: Evolution and Process10.1002/smr.232033:3Online publication date: 3-Mar-2021
  • (2019)On the Density and Diversity of Degradation Symptoms in Refactored Classes: A Multi-case Study2019 IEEE 30th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE.2019.00042(346-357)Online publication date: Oct-2019
  • (2019)Removal of design problems through refactoringsProceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00032(148-153)Online publication date: 25-May-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
RSSE '08: Proceedings of the 2008 international workshop on Recommendation systems for software engineering
November 2008
62 pages
ISBN:9781605582283
DOI:10.1145/1454247
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: 09 November 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. refactoring
  2. smells
  3. tools

Qualifiers

  • Research-article

Funding Sources

Conference

SIGSOFT '08/FSE-16
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Software smell detection techniquesJournal of Software: Evolution and Process10.1002/smr.232033:3Online publication date: 3-Mar-2021
  • (2019)On the Density and Diversity of Degradation Symptoms in Refactored Classes: A Multi-case Study2019 IEEE 30th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE.2019.00042(346-357)Online publication date: Oct-2019
  • (2019)Removal of design problems through refactoringsProceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00032(148-153)Online publication date: 25-May-2019
  • (2018)Understanding semantic style by analysing student codeProceedings of the 20th Australasian Computing Education Conference10.1145/3160489.3160500(73-82)Online publication date: 30-Jan-2018
  • (2017)Revisiting context-based code smells prioritizationProceedings of the XP2017 Scientific Workshops10.1145/3120459.3120463(1-5)Online publication date: 22-May-2017
  • (2017)Collaborative identification of code smellsProceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track10.1109/ICSE-SEIP.2017.7(33-42)Online publication date: 20-May-2017
  • (2016)Identifying Code Smells with Collaborative Practices: A Controlled Experiment2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS)10.1109/SBCARS.2016.18(61-70)Online publication date: Sep-2016
  • (2015)Evaluating Collaborative Practices in Acquiring Programming SkillsProceedings of the 2015 29th Brazilian Symposium on Software Engineering10.1109/SBES.2015.24(150-159)Online publication date: 21-Sep-2015
  • (2013)Do developers care about code smells? An exploratory survey2013 20th Working Conference on Reverse Engineering (WCRE)10.1109/WCRE.2013.6671299(242-251)Online publication date: Oct-2013

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