skip to main content
10.1145/3532512.3535225acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
research-article

CodeMap: A Graphical Note-Taking Tool Cooperating with an Integrated Development Environment

Published: 08 December 2022 Publication History

Abstract

Program comprehension is an important yet difficult activity in a software development process. One of the main causes of the difficulty is its cognitive overhead for maintaining the mental models, which consist of roles of program elements and relationships between them. Though researchers have been working on tools to help maintaining the mental models, existing tools have high adoption barrier and support only a few programming languages, which hinders wide-range of programmers from using the program comprehension tools. We propose CodeMap, a graphical note-taking tool for offloading the mental models onto a visual representation. We designed CodeMap by considering familiarity and availability for practitioners. Our tool allows programmers to extract interested information into a graphical note with a few keyboard/mouse operations, and support many programming languages by using the language server protocol. In this paper, we present the design and implementation of CodeMap, and discuss possible features that could be useful for program comprehension.

References

[1]
Marjan Adeli, Nicholas Nelson, Souti Chattopadhyay, Hayden Coffey, Austin Henley, and Anita Sarma. 2020. Supporting code comprehension via annotations: Right information at the right time and place. In 2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 1–10.
[2]
Daniel R Bradley and Ian J Hayes. 2013. Visuocode: A software development environment that supports spatial navigation and composition. In 2013 First IEEE Working Conference on Software Visualization (VISSOFT). IEEE, 1–4.
[3]
Andrew Bragdon, Robert Zeleznik, Steven P Reiss, Suman Karumuri, William Cheung, Joshua Kaplan, Christopher Coleman, Ferdi Adeputra, and Joseph J LaViola Jr. 2010. Code bubbles: a working set-based interface for code understanding and maintenance. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. 2503–2512.
[4]
Michael J Coblenz, Amy J Ko, and Brad A Myers. 2006. JASPER: an Eclipse plug-in to facilitate software maintenance tasks. In Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange. 65–69.
[5]
Brian De Alwis and Gail C Murphy. 2006. Using visual momentum to explain disorientation in the Eclipse IDE. In Visual Languages and Human-Centric Computing (VL/HCC’06). IEEE, 51–54.
[6]
Vikki Fix, Susan Wiedenbeck, and Jean Scholtz. 1993. Mental representations of programs by novices and experts. In Proceedings of the INTERACT’93 and CHI’93 conference on Human factors in computing systems. 74–79.
[7]
Mik Kersten and Gail C Murphy. 2006. Using task context to improve programmer productivity. In Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering. 1–11.
[8]
Amy J Ko, Brad A Myers, Michael J Coblenz, and Htet Htet Aung. 2006. An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Transactions on software engineering 32, 12 (2006), 971–987.
[9]
Philip Mayer and Alexander Bauer. 2015. An empirical analysis of the utilization of multiple programming languages in open source projects. In Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering. 1–10.
[10]
Chris Parnin and Robert DeLine. 2010. Evaluating cues for resuming interrupted programming tasks. In Proceedings of the SIGCHI conference on human factors in computing systems. 93–102.
[11]
Chris Parnin, Carsten Görg, and Spencer Rugaber. 2010. CodePad: interactive spaces for maintaining concentration in programming environments. In Proceedings of the 5th international symposium on Software visualization. 15–24.
[12]
Nancy Pennington. 1987. Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive psychology 19, 3 (1987), 295–341.
[13]
Tobias Roehm, Rebecca Tiarks, Rainer Koschke, and Walid Maalej. 2012. How do professional developers comprehend software?. In 2012 34th International Conference on Software Engineering (ICSE). IEEE, 255–265.
[14]
Jonathan Sillito, Kris De Voider, Brian Fisher, and Gail Murphy. 2005. Managing software change tasks: An exploratory study. In 2005 International Symposium on Empirical Software Engineering, 2005. IEEE, 10–pp.
[15]
Xin Xia, Lingfeng Bao, David Lo, Zhenchang Xing, Ahmed E Hassan, and Shanping Li. 2017. Measuring program comprehension: A large-scale field study with professionals. IEEE Transactions on Software Engineering 44, 10 (2017), 951–976.

Cited By

View all

Index Terms

  1. CodeMap: A Graphical Note-Taking Tool Cooperating with an Integrated Development Environment

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    Programming '22: Companion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming
    March 2022
    98 pages
    ISBN:9781450396561
    DOI:10.1145/3532512
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 08 December 2022

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. code navigation
    2. program comprehension
    3. software engineering

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    <Programming> '22 Companion

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 63
      Total Downloads
    • Downloads (Last 12 months)21
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 07 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format.

    HTML Format

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media