The Community for Technology Leaders
RSS Icon
Issue No.04 - July/August (2009 vol.35)
pp: 470-483
Margaret-Anne Storey , University of Victoria, Victoria
Jody Ryall , University of Victoria, Victoria
Janice Singer , National Research Council Canada, Ottawa
Del Myers , University of Victoria, Victoria
Li-Te Cheng , IBM Research, Cambridge
Michael Muller , IBM Research, Cambridge
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.
Annotations, software navigation, software tagging, tags, software development tools.
Margaret-Anne Storey, Jody Ryall, Janice Singer, Del Myers, Li-Te Cheng, Michael Muller, "How Software Developers Use Tagging to Support Reminding and Refinding", IEEE Transactions on Software Engineering, vol.35, no. 4, pp. 470-483, July/August 2009, doi:10.1109/TSE.2009.15
[1] L. Brothers, V. Sembugamoorthy, and M. Muller, “ICICLE: Groupware for Code Inspection,” Proc. Conf. Computer Supported Cooperative Work, pp. 169-181, 1990.
[2] R. Capra, “An Investigation of Finding and Refinding Information on the Web,” PhD dissertation, Virginia Polytechnic Inst. and State Univ., Blacksburg, 2006.
[3] C. Cattuto, A. Baldassarri, V.D.P. Servedio, and V. Loreto, “Vocabulary Growth in Collaborative Tagging Systems,”, 2007.
[4] L.-T. Cheng, M. Desmond, and M.-A. Storey, “Presentations by Programmers for Programmers,” Proc. Int'l Conf. Software Eng., pp.788-792, 2007.
[5] E.H. Chi, A. Kittur, T. Mytkowicz, B. Pendleton, and B. Suh, “Augmented Social Cognition: Understanding Social Foraging and Social Sensemaking,” Proc. Human Computer Interaction Consortium Workshop, Plenary Paper, 2007.
[6] M.J. Coblenz, A.J. Ko, and B.A. Myers, “JASPER: An Eclipse Plug-In to Facilitate Software Maintenance Tasks,” Proc. Object Oriented Programming, Systems, Languages and Applications Workshop Eclipse Technology Exchange, pp. 65-69, 2006.
[7] J.W. Creswell, Qualitative, Quantitative, and Mixed Methods Approaches, second ed. Sage Publications, 2003.
[8] B. Dagenais and H. Ossher, “Mismar: A New Approach in Developer Documentation,” Proc. Int'l Conf. Software Eng., pp. 47-48, 2007.
[9] L. Damianos, J. Griffith, and D. Cuomo, “Onomi: Social Bookmarking on a Corporate Intranet,” Proc. WWW Tagging Workshop, position paper, 2006.
[10] R. Deline, M. Czerwinski, and G.G. Robertson, “Easing Program Comprehension by Sharing Navigation Data,” Proc. IEEE Symp. Visual Languages and Human-Centric Computing, pp. 241-248, 2005.
[11] C. Fraser, C. Luce, J. Starke, and J. Sillito, “Tool Support for Working with Sets of Source Code Entities,” Proc. IEEE Symp. Visual Languages and Human-Centric Computing, pp. 73-77, 2008.
[12] G.W. Furnas, T.K. Landauer, L.M. Gomez, and S.T. Dumas, “The Vocabulary Problem in Human System Communication: An Analysis and Solution,” Comm. ACM, vol. 30, no. 11, pp. 964-971, 1987.
[13] S. Golder and B.A. Huberman, “Usage Patterns of Collaborative Tagging Systems,” J. Information Science, vol. 32, no. 2, pp. 198-208, 2006.
[14] T. Hammond, T. Hannay, B. Lund, and J. Scott, “Social Bookmarking Tools: A General Review,” D-Lib Magazine, vol. 11, no. 4, Apr. 2005.
[15] Javadoc Home Page,, 2009.
[16] M. Kersten and G. Murphy, “Mylar: A Degree-of-Interest Model for IDEs,” Proc. Int'l Conf. Aspect Oriented Software Development, pp.159-168, 2005.
[17] M. Kersten, M. Chapman, A. Clement, and A. Coyler, “Lessons Learned Building Tool Support for AspectJ,” Proc. Industry Track Conf. Aspect-Oriented Software Development, Mar. 2006.
[18] F.J. Larkin, Basic Coastal Navigation: An Introduction to Piloting, second ed. Sheridan House, 1999.
[19] I. Majid and M.P. Robillard, “NaCIN—An Eclipse Plug-In for Program Navigation-Based Concern Inference,” Proc. Object Oriented Programming, Systems, Languages and Applications Workshop Eclipse Technology Exchange, pp. 70-74, 2005.
[20] C. Marshall, “Annotation: From Paper Books to the Digital Library,” Proc. Int'l Conf. Digital Libraries, pp. 131-140, 1997.
[21] M.J. Muller, “Comparing Tagging Vocabularies among Four Enterprise Tag-Based Services,” Proc. 2007 Int'l ACM Conf. Supporting Group Work, pp. 341-350, 2007.
[22] G. Murphy, M. Kersten, and L. Findlater, “How Are Java Software Developers Using the Eclipse IDE?” IEEE Software, vol. 23, no. 4, pp. 76-83, July/Aug. 2006.
[23] C. Oezbek and L. Prechelt, “JTourBus: Simplifying Program Understanding by Documentation That Provides Tours through the Source Code,” Proc. Int'l Conf. Software Maintenance, pp. 64-73, 2007.
[24] Y.X. Pan and D.R. Millen, “Information Sharing and Patterns of Social Interaction in an Enterprise Social Bookmarking Service,” Proc. Hawaii Int'l Conf. Systems Science, pp. 158-168, 2008.
[25] J.-H. Pfeiffer, A. Sardos, and J.R. Gurd, “Complex Code Querying and Navigation for AspectJ,” Proc. Object Oriented Programming, Systems, Languages and Applications Workshop Eclipse Technology Exchange, pp. 60-64, 2005.
[26] M.P. Robillard and F. Weigand-Warr, “ConcernMapper: Simple View-Based Separation of Scattered Concerns,” Proc. Workshop Eclipse Technology Exchange, pp. 65-69, Oct. 2005.
[27] Selznak, “We Are Morons: A Quick Look at the Win2k Source,” , 2009.
[28] J. Singer, R. Elves, and M.-A. Storey, “NavTracks: Supporting Navigation in Software Maintenance,” Proc. Int'l Conf. Software Maintenance, pp. 325-334, 2005.
[29] M.-A. Storey, L.-T. Cheng, I. Bull, and P. Rigby, “Shared Waypoints and Social Tagging to Support Collaboration in Software Development,” Proc. Conf. Computer Supported Cooperative Work, pp. 195-198, 2006.
[30] M.-A. Storey, L.-T. Cheng, J. Singer, M. Muller, D. Myers, and J. Ryall, “How Programmers Can Turn Comments into Waypoints for Code Navigation,” Proc. Int'l Conf. Software Maintenance, pp.265-274, 2007.
[31] M.-A. Storey, J. Ryall, R.I. Bull, D. Myers, and J. Singer, “TODO or to Bug: Exploring How Task Annotations Play a Role in the Work Practices of Software Engineers,” Proc. Int'l Conf. Software Eng., pp.251-260, 2008.
[32] J. Teevan, “Supporting Finding and Re-Finding through Personalization,” PhD dissertation, Massachusetts Inst. of Tech nology, 2007.
[33] N. Vinson, “Design Guidelines for Landmarks to Support Navigation in Virtual Environments,” Proc. Conf. Human Factors in Computing Systems, pp. 278-285, 1999.
[34] A. Ying, J. Wright, and S. Abrams, “Source Code That Talks: An Exploration of Eclipse Task Comments and Their Implication to Repository Mining,” Proc. Workshop Mining Software Repositories, pp. 1-5, 2005.
17 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool