skip to main content
10.1145/2047196.2047225acmconferencesArticle/Chapter ViewAbstractPublication PagesuistConference Proceedingsconference-collections
research-article

Stacksplorer: call graph navigation helps increasing code maintenance efficiency

Published: 16 October 2011 Publication History

Abstract

We 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 the traditional code editor by offering an additional layer of navigation. Stacksplorer is particularly useful to understand and edit unknown source code because branches of the call graph can be explored and backtracked easily. Visualizing the callers of a method reduces the risk of introducing unintended side effects. In a quantitative study, programmers using Stacksplorer performed three of four software maintenance tasks significantly faster and with higher success rates, and Stacksplorer received a System Usability Scale rating of 85.4 from participants.

Supplementary Material

JPG File (fp249.jpg)
MOV File (fp249.mov)

References

[1]
A. Bangor, P. Kortum, and J. Miller. An Empirical Evaluation of the System Usability Scale. Intl. Journal of Human-Computer Interaction, 24(6):574--594, Aug. 2008.
[2]
A. Bragdon, R. Zeleznik, S. P. Reiss, S. Karumuri, W. Cheung, J. Kaplan, C. Coleman, F. Adeputra, and J. J. LaViola. Code Bubbles: A Working Set-based Interface for Code Understanding and Maintenance. In Proc. CHI '10. ACM, 2010.
[3]
J. Brooke. SUS-A quick and dirty usability scale. Taylor and Francis, London, 1996.
[4]
B. de Alwis, G. C. Murphy, and M. P. Robillard. A Comparative Study of Three Program Exploration Tools. In Proc. ICPC '07, pages 103--112. IEEE, 2007.
[5]
R. Deline, M. Czerwinski, B. Myers, G. Venolia, S. Drucker, and G. Robertson. Code Thumbnails: Using Spatial Memory to Navigate Source Code. In Proc. Visual Languages and Human-Centric Computing 2006. IEEE, 2006.
[6]
R. DeLine, M. Czerwinski, and G. Robertson. Easing Program Comprehension by Sharing Navigation Data. In Proc. Visual Languages and Human-Centric Computing 2005. IEEE, 2005.
[7]
G. Furnas. Generalized Fisheye Views. In Proc. CHI '86. ACM, 1986.
[8]
I. Herman, G. Melancon, and M. Marshall. Graph Visualization and Navigation in Information Visualization: A Survey. IEEE Transactions on Visualization and Computer Graphics, 6(1):24--43, 2000.
[9]
M. Huang, P. Eades, J. Wang, and P. R. China. Online Animated Graph Drawing Using a Modified Spring Algorithm. Journal of Visual Languages and Computing, 9(6), 1998.
[10]
M. Kersten and G. C. Murphy. Mylar: A Degree-of-Interest Model for IDEs. In Proc. Aspect-oriented Software Development, pages 159--168. ACM, 2005.
[11]
A. Ko, B. Myers, M. Coblenz, and H. Aung. An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks. IEEE Transactions on Software Engineering, 32(12):971--987, 2006.
[12]
A. J. Ko and B. A. Myers. Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior. In Proc. ICSE '08, pages 301--310. IEEE, 2008.
[13]
T. D. LaToza and B. A. Myers. Developers Ask Reachability Questions. In Proc. ICSE '10, pages 185--194. ACM, 2010.
[14]
T. D. LaToza and B. A. Myers. Searching Across Paths. In 2nd Intl. Workshop on Search-driven development: Users, Infrastructure, Tools and Evaluation, 2010.
[15]
T. D. LaToza, G. Venolia, and R. DeLine. Maintaining Mental Models: A Study of Developer Work Habits. In Proc. ICSE '06, pages 492--501. ACM, 2006.
[16]
J. Lawrance, R. Bellamy, M. Burnett, and K. Rector. Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks. In Proc. CHI '08. ACM Press, 2008.
[17]
H. R. Lewis and C. H. Papadimitriou. Elements of the Theory of Computation. Prentice-Hall, 1981.
[18]
G. C. Murphy, M. Kersten, and L. Findlater. How Are Java Software Developers Using the Eclipse IDE? IEEE Software, 23(4):76--83, 2006.
[19]
R. S. Pressman. Software Engineering: A Practitioner's Approach. McGraw-Hill, 7. edition, 2010.
[20]
M. P. Robillard, W. Coelho, and G. C. Murphy. How Effective Developers Investigate Source Code: An Exploratory Study. IEEE Transactions on Software Engineering, 30(12), 2004.
[21]
B. G. Ryder. Constructing the Call Graph of a Program. IEEE Transactions on Software Engineering, 1979.
[22]
J. Sillito, G. C. Murphy, and K. D. Volder. Asking and Answering Questions during a Programming Change Task. IEEE Transactions on Software Engineering, 34(4):434--451, 2008.
[23]
J. Singer, R. Elves, and M.-A. Storey. NavTracks: Supporting Navigation in Software Maintenance. In Proc. IEEE Software Maintenance. IEEE, 2005.
[24]
D. Cubranić and G. C. Murphy. Hipikat: Recommending Pertinent Software Development Artifacts. In Proc. ICSE '03. IEEE, 2003.

Cited By

View all
  • (2022)Inclusive Multimodal Voice Interaction for Code NavigationProceedings of the 2022 International Conference on Multimodal Interaction10.1145/3536221.3556600(509-519)Online publication date: 7-Nov-2022
  • (2022)Spike – A code editor plugin highlighting fine-grained changes2022 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT55257.2022.00026(167-171)Online publication date: Oct-2022
  • (2022)How Does This New Developer Test Fit In? A Visualization to Understand Amplified Test Cases2022 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT55257.2022.00011(17-28)Online publication date: Oct-2022
  • Show More Cited By

Index Terms

  1. Stacksplorer: call graph navigation helps increasing code maintenance efficiency

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    UIST '11: Proceedings of the 24th annual ACM symposium on User interface software and technology
    October 2011
    654 pages
    ISBN:9781450307161
    DOI:10.1145/2047196
    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 ACM 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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 16 October 2011

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. development tools / toolkits / programming environments
    2. visualization

    Qualifiers

    • Research-article

    Conference

    UIST '11

    Acceptance Rates

    UIST '11 Paper Acceptance Rate 67 of 262 submissions, 26%;
    Overall Acceptance Rate 561 of 2,567 submissions, 22%

    Upcoming Conference

    UIST '25
    The 38th Annual ACM Symposium on User Interface Software and Technology
    September 28 - October 1, 2025
    Busan , Republic of Korea

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)19
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 17 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Inclusive Multimodal Voice Interaction for Code NavigationProceedings of the 2022 International Conference on Multimodal Interaction10.1145/3536221.3556600(509-519)Online publication date: 7-Nov-2022
    • (2022)Spike – A code editor plugin highlighting fine-grained changes2022 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT55257.2022.00026(167-171)Online publication date: Oct-2022
    • (2022)How Does This New Developer Test Fit In? A Visualization to Understand Amplified Test Cases2022 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT55257.2022.00011(17-28)Online publication date: Oct-2022
    • (2022)Mining Software Information Sites to Recommend Cross-Language Analogical Libraries2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00109(913-924)Online publication date: Mar-2022
    • (2021)ChangeViz: Enhancing the GitHub Pull Request Interface with Method Call Information2021 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT52517.2021.00022(115-119)Online publication date: Sep-2021
    • (2021)CcNav: Understanding Compiler Optimizations in Binary CodeIEEE Transactions on Visualization and Computer Graphics10.1109/TVCG.2020.303035727:2(667-677)Online publication date: Feb-2021
    • (2021)Programmer Experience: – An HCI Prespective2021 International Conference on Communication Technologies (ComTech)10.1109/ComTech52583.2021.9616689(44-48)Online publication date: 21-Sep-2021
    • (2020)Find Unique Usages: Helping Developers Understand Common Usages2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC50065.2020.9127285(1-8)Online publication date: Aug-2020
    • (2019)Programmer eXperience: A Systematic Literature ReviewIEEE Access10.1109/ACCESS.2019.29201247(71079-71094)Online publication date: 2019
    • (2019)How “Friendly” Integrated Development Environments Are?Social Computing and Social Media. Design, Human Behavior and Analytics10.1007/978-3-030-21902-4_7(80-91)Online publication date: 8-Jun-2019
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media