skip to main content
article

Component Comprehension in Context

Published:17 January 2023Publication History
Skip Abstract Section

Abstract

A large number of commercial software solutions contain some functionality achieved using different APIs. To use these APIs correctly, programmers must understand what they do and how they work. However, research into the comprehension of APIs has so far been limited. The aim of this research is to expand the current knowledge of program comprehension to include APIs and to analyze API comprehension in the context of software engineering work.

References

  1. Anneliese Amschler Andrews, Andreas Stefik, Nina Picone, and Sudipto Ghosh. A cots component comprehension process. In 13th International Workshop on Program Comprehension (IWPC'05), pages 135--144. IEEE, 2005.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Leah Bidlake, Eric Aubanel, and Daniel Voyer. Systematic literature review of empirical studies on mental representations of programs. Journal of Systems and Software, 165:110565, 2020.Google ScholarGoogle ScholarCross RefCross Ref
  3. Beth Crandall, Gary Klein, and Robert R Hoffman. Working minds. A Practitioners Guide to Cognitive Task Analysis, page 2006, 2006.Google ScholarGoogle ScholarCross RefCross Ref
  4. Fabian Fagerholm, Michael Felderer, Davide Fucci, Michael Unterkalmsteiner, Bogdan Marculescu, Markus Martini, Lars G¨oran Wallgren Tengberg, Robert Feldt, Bettina Lehtel¨a, Bal´azs Nagyv´aradi, and Jehan Khattak. Cognition in software engineering: A taxonomy and survey of a half-century of research. ACM Computing Surveys, 2021.Google ScholarGoogle Scholar
  5. Marsha E Fonteyn, Benjamin Kuipers, and Susan J Grobe. A description of think aloud method and protocol analysis. Qualitative health research, 3(4):430--441, 1993.Google ScholarGoogle Scholar
  6. Gao Gao, Finn Voichick, Michelle Ichinco, and Caitlin Kelleher. Exploring programmers' api learning processes: Collecting web resources as external memory. In 2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pages 1--10. IEEE, 2020.Google ScholarGoogle ScholarCross RefCross Ref
  7. Ava Heinonen, Fabian Fagerholm, Bettina Lehtel¨a, and Arto Hellas. Synthesizing research on programmers' mental models of programs, tasks and concepts -- a systematic literature review. Information and Software Technology, 2022,in press.Google ScholarGoogle Scholar
  8. Daqing Hou and Lin Li. Obstacles in using frameworks and apis: An exploratory study of programmers' newsgroup discussions. In 2011 IEEE 19th International Conference on Program Comprehension, pages 91--100. IEEE, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Caitlin Kelleher and Michelle Ichinco. Towards a model of api learning. In 2019 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pages 163--168. IEEE, 2019.Google ScholarGoogle ScholarCross RefCross Ref
  10. Gary A Klein, Roberta Calderwood, and Donald Macgregor. Critical decision method for eliciting knowledge. IEEE Transactions on systems, man, and cybernetics, 19(3):462--472, 1989.Google ScholarGoogle ScholarCross RefCross Ref
  11. Michael Meng, Stephanie Steinhardt, and Andreas Schubert. How developers use api documentation: an observation study. Communication Design Quarterly Review, 7(2):40--49, 2019.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Brad A Myers and Jeffrey Stylos. Improving api usability. Communications of the ACM, 59(6):62--69, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Martin P Robillard. What makes apis hard to learn? answers from developers. IEEE software, 26(6):27--34, 2009.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Martin P. Robillard and Robert DeLine. A field study of api learning obstacles. Empirical Software Engineering, 2011.Google ScholarGoogle Scholar
  15. M-A Storey. Theories, methods and tools in program comprehension: past, present and future. In 13th International Workshop on Program Comprehension (IWPC'05), pages 181--191. IEEE, 2005.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Laila van Ments and Jan Treur. Reflections on dynamics, adaptation and control: a cognitive architecture for mental models. Cognitive Systems Research, 70:1--9, 2021.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. BL William Wong. The handbook of task analysis for human-computer interactions. Mahwah: Lawrence Erlbaum Associates, chapter Critical decision method data analysis, pages 327--46. 2003.Google ScholarGoogle Scholar
  18. Xin Xia, Lingfeng Bao, David Lo, Zhenchang Xing, Ahmed E Hassan, and Shanping Li. Measuring program comprehension: A large-scale field study with professionals. IEEE Transactions on Software Engineering, 44(10):951--976, 2017.Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 48, Issue 1
    January 2023
    113 pages
    ISSN:0163-5948
    DOI:10.1145/3573074
    Issue’s Table of Contents

    Copyright © 2023 Copyright is held by the owner/author(s)

    Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 17 January 2023

    Check for updates

    Qualifiers

    • article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader