skip to main content
10.1145/1879211.1879216acmconferencesArticle/Chapter ViewAbstractPublication PagessoftvisConference Proceedingsconference-collections
research-article

An interactive ambient visualization for code smells

Published:25 October 2010Publication History

ABSTRACT

Code smells are characteristics of software that indicate that code may have a design problem. Code smells have been proposed as a way for programmers to recognize the need for restructuring their software. Because code smells can go unnoticed while programmers are working, tools called smell detectors have been developed to alert programmers to the presence of smells in their code, and to help them understand the cause of those smells. In this paper, we propose a novel smell detector called Stench Blossom that provides an interactive ambient visualization designed to first give programmers a quick, high-level overview of the smells in their code, and then, if they wish, to help in understanding the sources of those code smells. We also describe a laboratory experiment with 12 programmers that tests several hypotheses about our tool. Our findings suggest that programmers can use our tool effectively to identify smells and to make refactoring judgements. This is partly because the tool serves as a memory aid, and partly because it is more reliable and easier to use than heuristics for analyzing smells.

Skip Supplemental Material Section

Supplemental Material

p5-murphy-hill.mov

mov

39.6 MB

References

  1. J. Callahan, D. Hopkins, M. Weiser, and B. Shneiderman. An empirical comparison of pie vs. linear menus. In CHI '88: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pages 95--100. ACM, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Drozdz, D. G. Kourie, B. W. Watson, and A. Boake. Refactoring tools and complementary techniques. In AICCSA '06: Proceedings of the IEEE International Conference on Computer Systems and Applications, pages 685--688. IEEE Computer Society, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Eva van Emden and Leon Moonen. Java quality assurance by detecting code smells. In Proceedings of the Ninth Working Conference on Reverse Engineering, pages 97--106. IEEE Computer Society, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Martin Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Jennifer Gluck, Andrea Bunt, and Joanna McGrenere. Matching attentional draw with utility in interruption. In CHI '07: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 41--50, New York, NY, USA, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Shinpei Hayashi, Motoshi Saeki, and Masahito Kurihara. Supporting refactoring activities using histories of program modification. IEICE - Transactions on Information and Systems, E89-D(4):1403--1412, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Mik Kersten and Gail 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. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Rainer Koschke, Christopher D. Hundhausen, and Alexandru Telea, editors. Proceedings of the ACM 2008 Symposium on Software Visualization, Ammersee, Germany, September 16-17, 2008. ACM, 2008.Google ScholarGoogle Scholar
  9. Pattie Maes. Agents that reduce work and information overload. Communications of the ACM, 37(7):30--40, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Jennifer Mankoff, Anind K. Dey, Gary Hsieh, Julie Kientz, Scott Lederer, and Morgan Ames. Heuristic evaluation of ambient displays. In CHI '03: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pages 169--176. ACM, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mika V. Mantyla. 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.Google ScholarGoogle ScholarCross RefCross Ref
  12. Mika V. Mantyla, Jari Vanhanen, and Casper Lassenius. Bad smells - humans as code critics. IEEE International Conference on Software Maintenance, 0:399--408, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Daniel McFarlane. Comparison of four primary methods for coordinating the interruption of people in human-computer interaction. Hum.-Comput. Interact., 17(1):63--139, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Emerson Murphy-Hill and Andrew P. Black. Refactoring tools: Fitness for purpose. IEEE Software, 25(5), September-October 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Emerson Murphy-Hill, Chris Parnin, and Andrew P. Black. How we refactor, and how we know it. In ICSE '09: Proceedings of the 31st International Conference on Software Engineering, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Helmut Neukirchen and Martin Bisanz. Utilising Code Smells to Detect Quality Problems in TTCN-3 Test Suites. In Proceedings of the 19th IFIP International Conference on Testing of Communicating Systems and 7th International Workshop on Formal Approaches to Testing of Software, pages 228--243. Springer, Heidelberg, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Jakob Nielsen. Ten usability heuristics. Internet, 2005. http://www.useit.com/papers/heuristic/heuristic_list.html.Google ScholarGoogle Scholar
  18. Jakob Nielsen and Rolf Molich. Heuristic evaluation of user interfaces. In CHI '90: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 249--256, New York, NY, USA, 1990. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Chris Parnin and Carsten Görg. Building usage contexts during program comprehension. In ICPC '06: Proceedings of the 14th IEEE International Conference on Program Comprehension, pages 13--22. IEEE Computer Society, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Chris Parnin, Carsten Görg, and Ogechi Nnadi. A catalogue of lightweight visualizations to support code smell inspection. In Koschke et al. {9}, pages 77--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Jef Raskin. The humane interface: new directions for designing interactive systems. ACM Press/Addison-Wesley Publishing Co., 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. T. J. Robertson, Shrinu Prabhakararao, Margaret Burnett, Curtis Cook, Joseph R. Ruthruff, Laura Beckwith, and Amit Phalgune. Impact of interruption style on end-user debugging. In CHI '04: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 287--294, New York, NY, USA, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Ben Shneiderman. System message design: Guidelines and experimental results. In Albert Badre and Ben Shneiderman, editors, Directions in Human/Computer Interaction, Human/Computer Interaction, chapter 3, pages 55--78. Ablex Publishing Corporation, 1982.Google ScholarGoogle Scholar
  24. Ben Shneiderman. Designing the User Interface (2nd ed.): Strategies for Effective Human-Computer Interaction. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Frank Simon, Frank Steinbrückner, and Claus Lewerentz. Metrics based refactoring. In Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, pages 30--38. IEEE Computer Society, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Stephan Slinger. Code smell detection in Eclipse. Master's thesis, Delft University of Technology, March 2005.Google ScholarGoogle Scholar
  27. Anne M. Treisman and Garry Gelade. A feature-integration theory of attention. Cognitive Psychology, 12(1):97--136, January 1980.Google ScholarGoogle ScholarCross RefCross Ref
  28. Nikolaos Tsantalis, Theodoros Chaikalis, and Alexander Chatzigeorgiou. JDeodorant: Identification and removal of type-checking bad smells. In CSMR, pages 329--331. IEEE Computing Society, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Richard Wettel and Michele Lanza. Visually localizing design problems with disharmony maps. In Koschke et al. {9}, pages 155--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. P. F. Xiang, A. T. T. Ying, P. Cheng, Y. B. Dang, K. Ehrlich, M. E. Helander, P. M. Matchen, A. Empere, P. L. Tarr, C. Williams, and S. X. Yang. Ensemble: a recommendation tool for promoting communication in software teams. In RSSE '08: Proceedings of the 2008 International Workshop on Recommendation Systems for Software Engineering. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An interactive ambient visualization for code smells

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SOFTVIS '10: Proceedings of the 5th international symposium on Software visualization
        October 2010
        238 pages
        ISBN:9781450300285
        DOI:10.1145/1879211

        Copyright © 2010 ACM

        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: 25 October 2010

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate20of65submissions,31%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader