How Software Developers Use Tagging to Support Reminding and Refinding

Developers frequently add annotations to source code to help them remember pertinent information and mark locations of interest for future investigation. Finding and refinding these notes is a form of navigation that is integral to software maintenance. Although there is some tool support in modern development environments for authoring and navigating these comments, we have observed that these annotations often fail to remind and are sometimes difficult to find by the programmer. To address these shortcomings, we have designed a new approach for software navigation called tags for software engineering activities (TagSEA). TagSEA combines the notion of waypointing (a mechanism for marking locations in spatial navigation) with social tagging to support programmers in defining semantically rich annotations to source code comments. The tool provides support for creating, editing, navigating, and managing these annotations. We present the results from two empirical studies, where we observed and then analyzed how professional programmers used source code annotations to support their development activities over 24 months. Our findings indicate that the addition of semantic information to annotations can improve their value. We also provide suggestions on how annotation tools in general may be improved.

[1]  Eduard H. Hovy Annotation , 1942, Glasgow Medical Journal.

[2]  Susan T. Dumais,et al.  The Vocabulary Problem in Human-System Communication: an Analysis and a Solution , 1987 .

[3]  Susan T. Dumais,et al.  The vocabulary problem in human-system communication , 1987, CACM.

[4]  Laurence Brothers,et al.  ICICLE: groupware for code inspection , 1990, CSCW '90.

[5]  Catherine C. Marshall,et al.  Annotation: from paper books to the digital library , 1997, DL '97.

[6]  Norman G. Vinson,et al.  Design guidelines for landmarks to support navigation in virtual environments , 1999, CHI '99.

[7]  Annie T. T. Ying,et al.  Source code that talks: an exploration of Eclipse task comments and their implication to repository mining , 2005, ACM SIGSOFT Softw. Eng. Notes.

[8]  Mary Czerwinski,et al.  Easing program comprehension by sharing navigation data , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[9]  John R. Gurd,et al.  Complex code querying and navigation for AspectJ , 2005, eclipse '05.

[10]  Mik Kersten,et al.  Mylar: a degree-of-interest model for IDEs , 2005, AOSD '05.

[11]  Martin P. Robillard,et al.  NaCIN: an Eclipse plug-in for program navigation-based concern inference , 2005, eclipse '05.

[12]  Janice Singer,et al.  NavTracks: supporting navigation in software maintenance , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[13]  James L. Wright,et al.  Source code that talks: an exploration of Eclipse task comments and their implication to repository mining , 2005, MSR '05.

[14]  Martin P. Robillard,et al.  ConcernMapper: simple view-based separation of scattered concerns , 2005, eclipse '05.

[15]  Tony Hammond,et al.  Social Bookmarking Tools (I): A General Overview , 2005, D Lib Mag..

[16]  D. Cuomo Onomi : Social Bookmarking on a Corporate Intranet , 2006 .

[17]  Li-Te Cheng,et al.  Shared waypoints and social tagging to support collaboration in software development , 2006, CSCW '06.

[18]  Brad A. Myers,et al.  JASPER: an Eclipse plug-in to facilitate software maintenance tasks , 2006, eclipse '06.

[19]  Mik Kersten,et al.  How are Java software developers using the Elipse IDE? , 2006, IEEE Software.

[20]  Bernardo A. Huberman,et al.  Usage patterns of collaborative tagging systems , 2006, J. Inf. Sci..

[21]  Manuel A. Pérez-Quiñones,et al.  An investigation of finding and refinding information on the web , 2006 .

[22]  Jaime Teevan,et al.  Supporting finding and re-finding through personalization , 2007 .

[23]  Li-Te Cheng,et al.  Presentations by Programmers for Programmers , 2007, 29th International Conference on Software Engineering (ICSE'07).

[24]  Michael J. Muller Comparing tagging vocabularies among four enterprise tag-based services , 2007, GROUP.

[25]  Janice Singer,et al.  How Programmers can Turn Comments into Waypoints for Code Navigation , 2007, 2007 IEEE International Conference on Software Maintenance.

[26]  Harold Ossher,et al.  Mismar: A New Approach to Developer Documentation , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[27]  Vittorio Loreto,et al.  Vocabulary growth in collaborative tagging systems , 2007, ArXiv.

[28]  Lutz Prechelt,et al.  JTourBus: Simplifying Program Understanding by Documentation that Provides Tours Through the Source Code , 2007, 2007 IEEE International Conference on Software Maintenance.

[29]  Janice Singer,et al.  TODO or to bug , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[30]  David R. Millen,et al.  Information Sharing and Patterns of Social Interaction in an Enterprise Social Bookmarking Service , 2008, Proceedings of the 41st Annual Hawaii International Conference on System Sciences (HICSS 2008).

[31]  Jonathan Sillito,et al.  Tool support for working with sets of source code entities , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[32]  J. Creswell Qualitative, Quantitative, and mixed methods approaches SECOND EDITION , 2010 .