ABSTRACT
Understanding source code is crucial for successful software maintenance, and navigating the call graph is especially helpful to understand source code [12]. We compared maintenance performance across four different development environments: an IDE without any call graph exploration tool, a Call Hierarchy tool as found in Eclipse, and the tools Stacksplorer [7]and Blaze [11]. Using any of the call graph exploration tools more developers could solve certain maintenance tasks correctly. Only Stacksplorer and Blaze, however, were also able to decrease task completion times, although the Call Hierarchy offers access to a larger part of the call graph. To investigate if this result was caused by a change in navigation behavior between the tools, we used a set of predictive models to create formally comparable descriptions of programmer navigation. The results suggest that the decrease in task completion times has been caused by Stacksplorer and Blaze promoting call graph navigation more than the Call Hierarchy tool.
- Baeza-Yates, R. A., and Ribeiro-Neto, B. Modern Information Retrieval. Addison-Wesley Longman, 1999. Google ScholarDigital Library
- Bragdon, A., Zeleznik, R., Reiss, S. P., Karumuri, S., Cheung, W., Kaplan, J., Coleman, C., Adeputra, F., and LaViola, J. J. Code Bubbles: A Working Set-based Interface for Code Understanding and Maintenance. In Proc. CHI '10, ACM (2010). Google ScholarDigital Library
- Coblenz, M. J., Ko, A. J., and Myers, B. A. JASPER : An Eclipse Plug-In to Facilitate Software Maintenance Tasks. In Proc. 2006 OOPSLA Workshop on Eclipse Technology eXchange, ACM Press (2006). Google ScholarDigital Library
- DeLine, R., Czerwinski, M., and Robertson, G. Easing Program Comprehension by Sharing Navigation Data. In Proc. VLHCC '05, IEEE (2005). Google ScholarDigital Library
- DeLine, R., and Rowan, K. Code canvas: zooming towards better development environments. In Proc. ICSE '10, ACM (2010). Google ScholarDigital Library
- Fouse, A., Weibel, N., Hutchins, E., and Hollan, J. D. ChronoViz: a system for supporting navigation of time-coded data. In Proc. CHI '11, ACM (2011). Google ScholarDigital Library
- Karrer, T., Krämer, J.-P., Diehl, J., Hartmann, B., and Borchers, J. Stacksplorer: Call graph navigation helps increasing code maintenance efficiency. In Proc. UIST '11, ACM (2011). Google ScholarDigital Library
- Kersten, M., and Murphy, G. C. Mylar: A Degree-of-Interest Model for IDEs. In Proc. AOSD, ACM (2005). Google ScholarDigital Library
- Ko, A., Myers, B., Coblenz, M., and Aung, H. An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks. IEEE Transactions on Software Engineering 32, 12 (2006). Google ScholarDigital Library
- Ko, A. J., and Myers, B. A. Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior. In Proc. ICSE '08, IEEE (2008). Google ScholarDigital Library
- Krämer, J.-P., Kurz, J., Karrer, T., and Borchers, J. Blaze: supporting two-phased call graph navigation in source code. In Proc. CHI EA '12, ACM (2012). Google ScholarDigital Library
- LaToza, T. D., and Myers, B. A. Developers Ask Reachability Questions. In Proc. ICSE '10, ACM (2010). Google ScholarDigital Library
- LaToza, T. D., and Myers, B. A. Visualizing Call Graphs. In Proc. VLHCC '11 (2011).Google ScholarCross Ref
- LaToza, T. D., Venolia, G., and DeLine, R. Maintaining Mental Models: A Study of Developer Work Habits. In Proc. ICSE '06, ACM (2006). Google ScholarDigital Library
- Lawrance, J., Bellamy, R., Burnett, M., and Rector, K. Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks. In Proc. CHI '08, ACM (2008). Google ScholarDigital Library
- Murphy, G. C., Kersten, M., and Findlater, L. How Are Java Software Developers Using the Eclipse IDE? IEEE Software 23, 4 (2006). Google ScholarDigital Library
- Piorkowski, D., Fleming, S. D., Scaffidi, C., John, L., Bogart, C., John, B. E., Burnett, M., and Bellamy, R. Modeling programmer navigation: A head-to-head empirical evaluation of predictive models. In Proc. VL/HCC '11 (2011).Google ScholarCross Ref
- Pirolli, P., and Card, S. K. Information Foraging. Psychological Review 106, 4 (1999).Google ScholarCross Ref
- Pressman, R. S. Software Engineering: A Practitioner's Approach, 7th ed. McGraw-Hill, 2010. Google ScholarDigital Library
- Robillard, M. P., Coelho, W., and Murphy, G. C. How Effective Developers Investigate Source Code: An Exploratory Study. IEEE Transactions on Software Engineering 30, 12 (2004). Google ScholarDigital Library
- Sillito, J., Murphy, G. C., and Volder, K. D. Asking and Answering Questions during a Programming Change Task. IEEE Transactions on Software Engineering 34, 4 (2008). Google ScholarDigital Library
- Singer, J., Elves, R., and Storey, M.-A. NavTracks: Supporting Navigation in Software Maintenance. In Proc. ICSM '05, IEEE (2005). Google ScholarDigital Library
- Singer, J., Lethbridge, T., Vinson, N., and Anquetil, N. An Examination of Software Engineering Work Practices. In Proc. 1997 Conference of the Centre for Advanced Studies on Collaborative Research, IBM Press (1997). Google ScholarDigital Library
- Čubranić, D., and Murphy, G. C. Hipikat: Recommending Pertinent Software Development Artifacts. In Proc. ICSE '03, IEEE (2003). Google ScholarDigital Library
- Winograd, T. Breaking the complexity barrier again. ACM SIGIR Forum (1974). Google ScholarDigital Library
Index Terms
How tools in IDEs shape developers' navigation behavior
Recommendations
Stacksplorer: call graph navigation helps increasing code maintenance efficiency
UIST '11: Proceedings of the 24th annual ACM symposium on User interface software and technologyWe present Stacksplorer, a new tool to support source code navigation and comprehension. Stacksplorer computes the call graph of a given piece of code, visualizes relevant parts of it, and allows developers to interactively traverse it. This augments ...
Quantifying developers' adoption of security tools
ESEC/FSE 2015: Proceedings of the 2015 10th Joint Meeting on Foundations of Software EngineeringSecurity tools could help developers find critical vulnerabilities, yet such tools remain underused. We surveyed developers from 14 companies and 5 mailing lists about their reasons for using and not using security tools. The resulting thirty-nine ...
Comments