skip to main content
10.1145/2601248.2601251acmotherconferencesArticle/Chapter ViewAbstractPublication PageseaseConference Proceedingsconference-collections
research-article

Dealing with identifiers and comments in source code comprehension and maintenance: results from an ethnographically-informed study with students and professionals

Published:13 May 2014Publication History

ABSTRACT

There are a number of empirical studies that assess the benefit deriving from the use of documentation and models in the execution of maintenance tasks. The greater part of these studies are quantitative and fail to analyze the values, beliefs, and assumptions that inform and shape source code comprehensibility and maintainability. We designed and conducted a qualitative study to understand the role of source code comments and identifiers in source code comprehensibility and maintainability. In particular, we sought to understand how novice and young professional developers perceive comments and identifier names after they have inspected the system behavior visible in its user interfaces. Novice developers were 18 third-year Bachelor students in Computer Science. The young professional developers were 12 and had work experience in between 3 months and 2 and half years. The used qualitative methodological approach is ethnographic. We asked the participants to inspect the behavior of a Java application visible in its user interfaces and then to comprehend and modify the source code of that application. We immersed ourselves and participated to the study, while collecting data by means of contemporaneous field notes, audio recordings, and copies of various artifacts. From the collected data, we have identified insights into comprehension and maintenance practices. The main insights can be summarized as follows: (i) with respect to novice developers, professional developers prefer to deal with identifier names rather than comments, (ii) all the participants indicate as essential the use of naming convention techniques for identifiers, and (iii) for all the participants the names of identifiers are important and should be properly chosen. Summarizing, independently from the kind of developer, it is advisable to use naming convention techniques and to properly choose identifiers.

References

  1. E. Arisholm, L. C. Briand, S. E. Hove, and Y. Labiche. The impact of UML documentation on software maintenance: An experimental evaluation. IEEE Trans. on Soft. Eng., 32:365--381, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. V. Basili, G. Caldiera, and D. H. Rombach. The Goal Question Metric Paradigm, Encyclopedia of Software Engineering. John Wiley and Sons, 1994.Google ScholarGoogle Scholar
  3. V. Basili, F. Shull, and F. Lanubile. Building knowledge through families of experiments. IEEE Trans. Softw. Eng., 25(4):456--473, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. P. Beynon-Davies. Ethnography and information systems development: Ethnography of, for and within is development. Information & Software Technology, 39(8):531--540, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Beynon-Davies, D. Tudhope, and H. Mackay. Information systems prototyping in practice. Journal of Information Technology, 14(1):107--120, Mar. 1999.Google ScholarGoogle ScholarCross RefCross Ref
  6. D. Binkley, M. Davis, D. Lawrie, J. I. Maletic, C. Morrell, and B. Sharif. The impact of identifier style on effort and comprehension. Empirical Software Engineering, 18(2):219--276, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. W. Boehm. Software Engineering Economics. Prentice-Hall, Englewood Cliffs, NJ, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. L. C. Briand, Y. Labiche, M. Di Penta, and H. Yan-Bondoc. An experimental investigation of formality in UML-based development. IEEE Trans. on Soft. Eng., 31(10):833--849, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. G. Button and W. Sharrock. Project work: The organisation of collaborative design and development in software engineering. Computer Supported Cooperative Work, 5(4):369--386, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. Byrne. Software reverse engineering. Software, Practice and Experience, 21(12):1349--1364, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Carver, L. Jaccheri, S. Morasca, and F. Shull. Issues in using students in empirical studies in software engineering education. In Proceedings of the International Symposium on Software Metrics, pages 239--, Washington, DC, USA, 2003. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W. J. Conover. Practical Nonparametric Statistics. Wiley, 3rd edition edition, 1998.Google ScholarGoogle Scholar
  13. S. C. B. de Souza, N. Anquetil, and K. M. de Oliveira. A study of the documentation essential to software maintenance. In Proceedings of the International Conference on Design of communication: documenting & designing for pervasive information, pages 68--75. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. DeLine, A. Khella, M. Czerwinski, and G. Robertson. Towards understanding programs through wear-based filtering. In Proceedings of the 2005 ACM symposium on Software visualization, SoftVis '05, pages 183--192. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. J. Dzidek, E. Arisholm, and L. C. Briand. A realistic empirical evaluation of the costs and benefits of UML in software maintenance. IEEE Trans. on Soft. Eng., 34:407--432, May 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. C. Gravino, M. Risi, G. Scanniello, and G. Tortora. Do professional developers benefit from design pattern documentation? a replication in the context of source code comprehension. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems, pages 185--201. Lecture Notes in Computer Science, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Hammersley and P. Atkinson. Ethnography: Principles in Practice. Taylor & Francis, 2007.Google ScholarGoogle ScholarCross RefCross Ref
  18. M. Höst, B. Regnell, and C. Wohlin. Using students as subjects---a comparative study of students and professionals in lead-time impact assessment. Empirical Software Engineering, 5(3):201--214, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. V. B. Kampenes, T. Dybå, J. E. Hannay, and D. I. K. Sjøberg. A systematic review of effect size in software engineering experiments. Infor. & Soft. Tech., 49(11-12):1073--1086, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. Kitchenham, S. Pfleeger, L. Pickard, P. Jones, D. Hoaglin, K. El Emam, and J. Rosenberg. Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng., 28(8):721--734, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. J. Ko, R. DeLine, and G. Venolia. Information needs in collocated software development teams. In Proceedings of the 29th international conference on Software Engineering, ICSE '07, pages 344--353, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. J. Ko, B. A. Myers, M. J. Coblenz, and H. H. Aung. An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans. Softw. Eng., 32(12):971--987, Dec. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Kuhn, S. Ducasse, and T. Gîrba. Semantic clustering: Identifying topics in source code. Information & Software Technology, 49(3):230--243, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models: a study of developer work habits. In Proceedings of the 28th international conference on Software engineering, ICSE '06, pages 492--501. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. Passos, D. S. Cruzes, T. Dybå, and M. Mendonça. Challenges of applying ethnography to study software practices. In Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement, ESEM '12, pages 9--18. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. L. Prechelt, B. Unger-Lamprecht, M. Philippsen, and W. F. Tichy. Two controlled experiments assessing the usefulness of design pattern documentation in program maintenance. IEEE Trans. Softw. Eng., 28(6):595--606, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. P. Robillard, W. Coelho, and G. C. Murphy. How effective developers investigate source code: An exploratory study. IEEE Trans. Softw. Eng., 30(12):889--903, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. H. Robinson, J. Segal, and H. Sharp. Ethnographically-informed empirical studies of software practice. Inf. Softw. Technol., 49(6):540--551, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. T. Roehm, R. Tiarks, R. Koschke, and W. Maalej. How do professional developers comprehend software? In Proceedings of the 2012 International Conference on Software Engineering, ICSE 2012, pages 255--265, Piscataway, NJ, USA, 2012. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. G. Scanniello, C. Gravino, M. Genero, J. A. Cruz-Lemus, and G. Tortora. On the impact of UML analysis models on source code comprehensibility and modifiability. ACM Trans. on Soft. Eng. and Meth., (to appear), 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. G. Scanniello, C. Gravino, and G. Tortora. Investigating the role of UML in the software modeling and maintenance - a preliminary industrial survey. In Proceedings of the 12th International Conference on Enterprise Information Systems, pages 141--148, 2010.Google ScholarGoogle Scholar
  32. G. Scanniello, C. Gravino, and G. Tortora. Does the combined use of class and sequence diagrams improve the source code comprehension? results from a controlled experiment. In Proceedings of the International Workshop Experiences and Empirical Studies in Software Modelling, pages 4:1--4:6. ACM Press, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. G. Scanniello and A. Marcus. Clustering support for static concept location in source code. In Proceedings of International Conference on Program Comprehension, pages 1--10, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. G. Scanniello and M. Risi. Dealing with faults in source code: Abbreviated vs. full-word identifier names. In Proceedings of International Conference of Software Maintenance. IEEE Computer Society, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. C. B. Seaman. Qualitative methods in empirical studies of software engineering. IEEE Trans. Softw. Eng., 25(4):557--572, July 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. J. Segal, A. Grinyer, and H. Sharp. The type of evidence produced by empirical software engineers. In Proceedings of the workshop on Realising evidence-based software engineering, pages 1--4. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. S. Shapiro and M. Wilk. An analysis of variance test for normality. Biometrika, 52(3-4):591--611, 1965.Google ScholarGoogle ScholarCross RefCross Ref
  38. H. Sharp and H. Robinson. An ethnographic study of xp practice. Empirical Softw. Eng., 9(4):353--375, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. H. Sharp, H. Robinson, and M. Woodman. Software engineering: Community and culture. IEEE Softw., 17(1):40--47, Jan. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. J. Sillito, G. C. Murphy, and K. De Volder. Asking and answering questions during a programming change task. IEEE Trans. Softw. Eng., 34(4):434--451, July 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. J. Sillito, K. D. Volder, B. Fisher, and G. C. Murphy. Managing software change tasks: an exploratory study. In Proceedings of International Symposium on Empirical Software Engineering, pages 23--32. IEEE Computer Society Press, 2005.Google ScholarGoogle ScholarCross RefCross Ref
  42. J. Singer, T. Lethbridge, N. Vinson, and N. Anquetil. An examination of software engineering work practices. In Proceedings of the Conference of the Centre for Advanced Studies on Collaborative research, pages 21--. IBM Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. E. Soloway and K. Ehrlich. Empirical studies of programming knowledge. IEEE Trans. Softw. Eng., 10(5):595--609, Sept. 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. A. Takang, P. Grubb, and R. Macredie. The effects of comments and identifier names on program comprehensibility: An experimental study. Journal of Programming Languages, 4(3):143--167, 1996.Google ScholarGoogle Scholar
  45. S. Tilley and S. Huang. A qualitative assessment of the efficacy of UML diagrams as a form of graphical documentation in aiding program understanding. In Proceedings of the annual international conference on Documentation, pages 184--191. ACM Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. E. Tryggeseth. Report from an experiment: Impact of documentation on maintenance. Empirical Software Engineering, 2(2):201--207, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. S. Viller and I. Sommerville. Ethnographically informed analysis for software engineers. Int. J. Hum.-Comput. Stud., 53(1):169--196, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. A. von Mayrhauser and A. M. Vans. Identification of dynamic comprehension processes during large scale maintenance. IEEE Trans. Softw. Eng., 22(6):424--437, June 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. C. Wohlin, P. Runeson, M. Höst, M. Ohlsson, B. Regnell, and A. Wesslén. Experimental in Software Engineering - An Introduction. Kluwer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dealing with identifiers and comments in source code comprehension and maintenance: results from an ethnographically-informed study with students and professionals

    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 Other conferences
      EASE '14: Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering
      May 2014
      486 pages
      ISBN:9781450324762
      DOI:10.1145/2601248

      Copyright © 2014 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 the author(s) 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: 13 May 2014

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate71of232submissions,31%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader