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.
- 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 ScholarDigital Library
- V. Basili, G. Caldiera, and D. H. Rombach. The Goal Question Metric Paradigm, Encyclopedia of Software Engineering. John Wiley and Sons, 1994.Google Scholar
- V. Basili, F. Shull, and F. Lanubile. Building knowledge through families of experiments. IEEE Trans. Softw. Eng., 25(4):456--473, 1999. Google ScholarDigital Library
- P. Beynon-Davies. Ethnography and information systems development: Ethnography of, for and within is development. Information & Software Technology, 39(8):531--540, 1997. Google ScholarDigital Library
- P. Beynon-Davies, D. Tudhope, and H. Mackay. Information systems prototyping in practice. Journal of Information Technology, 14(1):107--120, Mar. 1999.Google ScholarCross Ref
- 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 ScholarDigital Library
- B. W. Boehm. Software Engineering Economics. Prentice-Hall, Englewood Cliffs, NJ, 1981. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- E. Byrne. Software reverse engineering. Software, Practice and Experience, 21(12):1349--1364, 1991. Google ScholarDigital Library
- 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 ScholarDigital Library
- W. J. Conover. Practical Nonparametric Statistics. Wiley, 3rd edition edition, 1998.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- M. Hammersley and P. Atkinson. Ethnography: Principles in Practice. Taylor & Francis, 2007.Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- A. Kuhn, S. Ducasse, and T. Gîrba. Semantic clustering: Identifying topics in source code. Information & Software Technology, 49(3):230--243, 2007. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- H. Robinson, J. Segal, and H. Sharp. Ethnographically-informed empirical studies of software practice. Inf. Softw. Technol., 49(6):540--551, June 2007. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- C. B. Seaman. Qualitative methods in empirical studies of software engineering. IEEE Trans. Softw. Eng., 25(4):557--572, July 1999. Google ScholarDigital Library
- 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 ScholarDigital Library
- S. Shapiro and M. Wilk. An analysis of variance test for normality. Biometrika, 52(3-4):591--611, 1965.Google ScholarCross Ref
- H. Sharp and H. Robinson. An ethnographic study of xp practice. Empirical Softw. Eng., 9(4):353--375, 2004. Google ScholarDigital Library
- H. Sharp, H. Robinson, and M. Woodman. Software engineering: Community and culture. IEEE Softw., 17(1):40--47, Jan. 2000. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- E. Soloway and K. Ehrlich. Empirical studies of programming knowledge. IEEE Trans. Softw. Eng., 10(5):595--609, Sept. 1984. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- E. Tryggeseth. Report from an experiment: Impact of documentation on maintenance. Empirical Software Engineering, 2(2):201--207, 1997. Google ScholarDigital Library
- S. Viller and I. Sommerville. Ethnographically informed analysis for software engineers. Int. J. Hum.-Comput. Stud., 53(1):169--196, 2000. Google ScholarDigital Library
- 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 ScholarDigital Library
- C. Wohlin, P. Runeson, M. Höst, M. Ohlsson, B. Regnell, and A. Wesslén. Experimental in Software Engineering - An Introduction. Kluwer, 2000. Google ScholarDigital Library
Index Terms
- Dealing with identifiers and comments in source code comprehension and maintenance: results from an ethnographically-informed study with students and professionals
Recommendations
Descriptive compound identifier names improve source code comprehension
ICPC '18: Proceedings of the 26th Conference on Program ComprehensionReading and understanding source code is a major task in software development. Code comprehension depends on the quality of code, which is impacted by code structure and identifier naming. In this paper we empirically investigated whether longer but ...
Results from an Ethnographically-informed Study in the Context of Test Driven Development
EASE '16: Proceedings of the 20th International Conference on Evaluation and Assessment in Software EngineeringBackground: Test-driven development (TDD) is an iterative software development technique where unit tests are defined before production code. Previous studies fail to analyze the values, beliefs, and assumptions that inform and shape TDD.
Aim: We ...
Code Clone Graph Metrics for Detecting Diffused Code Clones
APSEC '09: Proceedings of the 2009 16th Asia-Pacific Software Engineering ConferenceCode clones (duplicated source code in a software system) are one of the major factors in decreasing maintainability. Many code clone detection methods have been proposed to find code clones automatically from large-scale software. However, it is still ...
Comments