Developers' code context models for change tasks
Open accessAbstract
To complete a change task, software developers spend a substantial amount of time navigating code to understand the relevant parts. During this investigation phase, they implicitly build context models of the elements and relations that are relevant to the task. Through an exploratory study with twelve developers completing change tasks in three open source systems, we identified important characteristics of these context models and how they are created. In a second empirical analysis, we further examined our findings on data collected from eighty developers working on a variety of change tasks on open and closed source projects. Our studies uncovered, amongst other results, that code context models are highly connected, structurally and lexically, that developers start tasks using a combination of search and navigation and that code navigation varies substantially across developers. Based on these findings we identify and discuss design requirements to better support developers in the initial creation of code context models. We believe this work represents a substantial step in better understanding developers' code navigation and providing better tool support that will reduce time and effort needed for change tasks.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Cites
Qualitative methods in empirical studies of software engineering
Seaman, C. B. (1999) · IEEE Transactions on Software Engineering · doi:10.1109/32.799955 · Cited by 1,483 · see citing works
Towards a theory of the comprehension of computer programs
Brooks, R. (1983) · International Journal of Man-Machine Studies · doi:10.1016/s0020-7373(83)80031-5 · Cited by 756 · see citing works
Ko, A. J., Myers, B. A., Coblenz, M. J., & Aung, H. H. (2006) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2006.116 · Cited by 685 · see citing works
Maintaining mental models: a study of developer work habits
LaToza, T. D., Venolia, G., & DeLine, R. (2006) · Proceedings of the 28th international conference on Software engineering · doi:10.1145/1134285.1134355 · Cited by 628 · see citing works
Change Distilling:Tree Differencing for Fine-Grained Source Code Change Extraction
Fluri, B., Würsch, M., Pinzger, M., & Gall, H. C. (2007) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2007.70731 · Cited by 607 · see citing works
Experimentation in software engineering
Basili, V. R., Selby, R. W., & Hutchens, D. H. (1986) · IEEE Transactions on Software Engineering · doi:10.1109/tse.1986.6312975 · Cited by 557 · see citing works
Stimulus structures and mental representations in expert comprehension of computer programs
Pennington, N. (1987) · Cognitive Psychology · doi:10.1016/0010-0285(87)90007-7 · Cited by 526 · see citing works
Using task context to improve programmer productivity
Kersten, M., & Murphy, G. C. (2006) · Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering · doi:10.1145/1181775.1181777 · Cited by 452 · see citing works
McMillan, C., Grechanik, M., Poshyvanyk, D., Xie, Q., & Fu, C. (2011) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1985793.1985809 · Cited by 313 · see citing works
An examination of software engineering work practices
Singer, J., Lethbridge, T. C., Vinson, N. G., & Anquetil, N. (2010) · doi:10.1145/1925805.1925815 · Cited by 298 · see citing works
Robillard, M. P., & Murphy, G. C. (2002) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/581339.581390 · Cited by 288 · see citing works
Questions programmers ask during software evolution tasks
Sillito, J., Murphy, G. C., & De Volder, K. (2006) · Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering · doi:10.1145/1181775.1181779 · Cited by 270 · see citing works
How effective developers investigate source code: an exploratory study
Robillard, M. P., Coelho, W., & Murphy, G. C. (2004) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2004.101 · Cited by 263 · see citing works
Cognitive design elements to support the construction of a mental model during software exploration
Storey, M.-A., Fracchia, F. D., & Müller, H. A. (1999) · Journal of Systems and Software · doi:10.1016/s0164-1212(98)10055-9 · Cited by 240 · see citing works
Navigating and querying code without getting lost
Janzen, D., & Volder, K. D. (2003) · International Conference on Aspect-Oriented Software Development (AOSD) · doi:10.1145/643603.643622 · Cited by 234 · see citing works
Eliciting design requirements for maintenance-oriented IDEs
Ko, A. J., Aung, H. H., & Myers, B. A. (2005) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1062455.1062492 · Cited by 182 · see citing works
Code bubbles: a working set-based interface for code understanding and maintenance
Bragdon, A., Zeleznik, R., Reiss, S. P., Karumuri, S., Cheung, W., Kaplan, J., Coleman, C., Adeputra, F., & LaViola, J. J. (2010) · Proceedings of the SIGCHI Conference on Human Factors in Computing Systems · doi:10.1145/1753326.1753706 · Cited by 174 · see citing works
Exploring the neighborhood with dora to expedite software maintenance
Hill, E., Pollock, L., & Vijay‐Shanker, K. (2007) · doi:10.1145/1321631.1321637 · Cited by 117 · see citing works
Program comprehension as fact finding
LaToza, T. D., Garlan, D., Herbsleb, J. D., & Myers, B. A. (2007) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/1287624.1287675 · Cited by 106 · see citing works
Using a behavioral theory of program comprehension in software engineering
Brooks, R. (1978) · doi:10.5555/800099.803210 · Cited by 97 · see citing works
Comprehension processes during large scale maintenance
von Mayrhauser, A., & Vans, A. M. (1994) · doi:10.5555/257734.257741 · Cited by 96 · see citing works
Towards understanding programs through wear-based filtering
DeLine, R., Khella, A., Czerwinski, M., & Robertson, G. (2005) · Proceedings of the 2005 ACM symposium on Software visualization · doi:10.1145/1056018.1056044 · Cited by 91 · see citing works
Searching and skimming: An exploratory study
Starke, J., Luce, C., & Sillito, J. (2009) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsm.2009.5306335 · Cited by 76 · see citing works
Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks
Lawrance, J., Bellamy, R., Burnett, M., & Rector, K. (2008) · Proceedings of the SIGCHI Conference on Human Factors in Computing Systems · doi:10.1145/1357054.1357261 · Cited by 76 · see citing works
The Emergent Structure of Development Tasks
Murphy, G. C., Kersten, M., Robillard, M. P., & Čubranić, D. (2005) · Lecture Notes in Computer Science · doi:10.1007/11531142_2 · Cited by 69 · see citing works
Corritore, C. L., & Wiedenbeck, S. (1999) · International Journal of Human-Computer Studies · doi:10.1006/ijhc.1998.0236 · Cited by 64 · see citing works
Wang, J., Peng, X., Xing, Z., & Zhao, W. (2011) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsm.2011.6080788 · Cited by 53 · see citing works
Piorkowski, D., Fleming, S., Scaffidi, C., Bogart, C., Burnett, M., John, B., Bellamy, R., & Swart, C. (2012) · Proceedings of the SIGCHI Conference on Human Factors in Computing Systems · doi:10.1145/2207676.2208608 · Cited by 50 · see citing works
Experiences gamifying developer adoption of practices and tools
Snipes, W., Nair, A. R., & Murphy-Hill, E. R. (2014) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/2591062.2591171 · Cited by 46 · see citing works
Self-citationManaging software change tasks: an exploratory study
Sillito, J., Volder, K. D., Fisher, B., & Murphy, G. C. (2005) · International Symposium on Empirical Software Engineering · doi:10.1109/isese.2005.1541811 · Cited by 39 · see citing works
Flagged first, then by citations
Cited by
Sorted by citations
Tracing software developers' eyes and interactions for change tasks
Kevic, K., Walters, B. M., Shaffer, T., Sharif, B., Shepherd, D. C., & Fritz, T. (2015) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/2786805.2786864 · Cited by 107 · see citing works
Self-citationSummarizing Software Artifacts: A Literature Review
Nazar, N., Hu, Y. Z., & Jiang, H. (2016) · Journal of Computer Science and Technology · doi:10.1007/s11390-016-1671-1 · Cited by 81 · see citing works
Software history under the lens: A study on why and how developers examine it
Codoban, M., Ragavan, S. S., Dig, D., & Bailey, B. P. (2015) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsm.2015.7332446 · Cited by 57 · see citing works
ActionNet: Vision-Based Workflow Action Recognition From Programming Screencasts
Zhao, D., Xing, Z., Chen, C., Xia, X., & Li, G. (2019) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse.2019.00049 · Cited by 49 · see citing works
On the Optimal Order of Reading Source Code Changes for Review
Baum, T., Schneider, K. A., & Bacchelli, A. (2017) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsme.2017.28 · Cited by 42 · see citing works
Foraging and navigations, fundamentally: developers' predictions of value and cost
Piorkowski, D., Henley, A. Z., Nabi, T., Fleming, S. D., Scaffidi, C., & Burnett, M. (2016) · Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering · doi:10.1145/2950290.2950302 · Cited by 38 · see citing works
Begel, A., & Vrzáková, H. (2018) · doi:10.1145/3216723.3216727 · Cited by 38 · see citing works
Razzaq, A., Buckley, J., Lai, Q., Yu, T., & Botterweck, G. (2025) · ACM Computing Surveys · doi:10.1145/3687299 · Cited by 36 · see citing works
Extracting and analyzing time-series HCI data from screen-captured task videos
Bao, L., Li, J., Xing, Z., Wang, X., Xia, X., & Zhou, B. (2016) · Empirical Software Engineering · doi:10.1007/s10664-015-9417-1 · Cited by 35 · see citing works
Eye gaze and interaction contexts for change tasks – Observations and potential
Kevic, K., Walters, B. M., Shaffer, T., Sharif, B., Shepherd, D. C., & Fritz, T. (2016) · Journal of Systems and Software · doi:10.1016/j.jss.2016.03.030 · Cited by 33 · see citing works
Self-citationA cross-tool communication study on program analysis tool notifications
Johnson, B., Pandita, R., Smith, J., Ford, D., Elder, S., Murphy-Hill, E. R., Heckman, S. S., & Sadowski, C. (2016) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/2950290.2950304 · Cited by 29 · see citing works
Inference of development activities from interaction with uninstrumented applications
Bao, L., Xing, Z., Xia, X., Lo, D., & Hassan, A. E. (2018) · Empirical Software Engineering · doi:10.1007/s10664-017-9547-8 · Cited by 25 · see citing works
Eyes on Code: A Study on Developers’ Code Navigation Strategies
Sharafi, Z., Bertram, I., Flanagan, M., & Weimer, W. R. (2020) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2020.3032064 · Cited by 25 · see citing works
Heinonen, A., Lehtelä, B., Hellas, A., & Fagerholm, F. (2023) · Information and Software Technology · doi:10.1016/j.infsof.2023.107300 · Cited by 24 · see citing works
Documenting database usages and schema constraints in database-centric applications
Linares‐Vásquez, M., Li, B., Vendome, C., & Poshyvanyk, D. (2016) · International Symposium on Software Testing and Analysis · doi:10.1145/2931037.2931072 · Cited by 22 · see citing works
How Software Developers Mitigate Their Errors When Developing Code
Nagaria, B., & Hall, T. (2020) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2020.3040554 · Cited by 22 · see citing works
Taming the IDE with fine-grained interaction data
Minelli, R., Mocci, A., Robbes, R., & Lanza, M. (2016) · IEEE International Conference on Program Comprehension (ICPC) · doi:10.1109/icpc.2016.7503714 · Cited by 21 · see citing works
Code Basket: Making Developers' Mental Model Visible and Explorable
Biegel, B., Baltes, S., Scarpellini, I., & Diehl, S. (2015) · doi:10.1109/csd.2015.12 · Cited by 12 · see citing works
Toward Principles for the Design of Navigation Affordances in Code Editors
Henley, A. Z., Fleming, S. D., & Luong, M. V. (2017) · CHI Conference on Human Factors in Computing Systems · doi:10.1145/3025453.3025645 · Cited by 11 · see citing works
Untangling development tasks with software developer's activity
Konôpka, M., & Návrat, P. (2015) · Journal of college student development · doi:10.5555/2819366.2819372 · Cited by 10 · see citing works
A Field Study on Fostering Structural Navigation with Prodet
Augustine, V., Francis, P., Qu, X., Shepherd, D. C., Snipes, W., Bräunlich, C., & Fritz, T. (2015) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse.2015.151 · Cited by 9 · see citing works
Self-citationUsing contextual knowledge in interactive fault localization
Horváth, F., Beszédes, Á., Vancsics, B., Balogh, G., Vidács, L., & Gyimóthy, T. (2022) · Empirical Software Engineering · doi:10.1007/s10664-022-10190-x · Cited by 8 · see citing works
Noise in Mylyn interaction traces and its impact on developers and recommendation systems
Soh, Z., Khomh, F., Guéhéneuc, Y., & Antoniol, G. (2017) · Empirical Software Engineering · doi:10.1007/s10664-017-9529-x · Cited by 8 · see citing works
Untangling Development Tasks with Software Developer's Activity
Konôpka, M., & Návrat, P. (2015) · doi:10.1109/csd.2015.10 · Cited by 8 · see citing works
Reflective feature location: knowledge in mind meets information in system
Peng, X., Xing, Z., Pan, S., Qian, W., Rajlich, V., & Zhao, W. (2017) · Science China Information Sciences · doi:10.1007/s11432-015-0860-9 · Cited by 6 · see citing works
Towards Activity-Aware Tool Support for Change Tasks
Kevic, K., & Fritz, T. (2017) · 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME) · doi:10.1109/icsme.2017.48 · Cited by 5 · see citing works
Self-citationAn Empirical Evaluation of Models of Programmer Navigation
Singh, A., Henley, A. Z., Fleming, S. D., & Luong, M. V. (2016) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsme.2016.84 · Cited by 5 · see citing works
CoMoGen: An Approach to Locate Relevant Task Context by Combining Search and Navigation
Kevic, K., Fritz, T., & Shepherd, D. C. (2014) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsme.2014.28 · Cited by 4 · see citing works
Self-citationMoldable, context-aware searching with Spotter
Chiș, A., Gîrba, T., Kubelka, J., Nierstrasz, O., Reichhart, S., & Syrel, A. (2016) · ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!) · doi:10.1145/2986012.2986023 · Cited by 4 · see citing works
Measuring code comprehension effort using code reading pattern
Mondal, S., Das, P. P., & Rudra, T. B. (2022) · Sadhana · doi:10.1007/s12046-022-01876-5 · Cited by 4 · see citing works
Needles in a Haystack: Student Struggles with Working on Large Code Bases
Shah, A., Rexin, T., Chernova, A., Allen-Perez, G., Griswold, W. G., & Raj, A. G. S. (2025) · ACM Conference on International Computing Education Research (ICER) · doi:10.1145/3702652.3744218 · Cited by 3 · see citing works
Towards an Empirically-Based IDE: An Analysis of Code Size and Screen Space
Short, A. C., & Henley, A. Z. (2019) · IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) · doi:10.1109/vlhcc.2019.8818857 · Cited by 3 · see citing works
Predicting code context models for software development tasks
Wan, Z., Murphy, G. C., & Xia, X. (2020) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1145/3324884.3416544 · Cited by 3 · see citing works
Task Context: A Tool for Predicting Code Context Models for Software Development Tasks
Wang, Y., Lin, Y., Wan, Z., & Yang, X. (2023) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse-companion58688.2023.00045 · Cited by 2 · see citing works
A porting method for coordinated multiplatform evolution
Stehle, T., & Riebisch, M. (2018) · Journal of Software Evolution and Process · doi:10.1002/smr.2116 · Cited by 2 · see citing works
Developer's Cognitive Effort Maintaining Monoliths vs. Microservices - An Eye-Tracking Study
Simhandl, G., Paulweber, P., & Zdun, U. (2023) · Asia-Pacific Software Engineering Conference (APSEC) · doi:10.1109/apsec60848.2023.00044 · Cited by 1 · see citing works
Recognizing relevant code elements during change task navigation
Kevic, K. (2016) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/2889160.2889270 · Cited by 1 · see citing works
Self-citationGNNContext: GNN-based Code Context Prediction for Programming Tasks
Zheng, X., Wan, Z., Liu, S., Yang, K., Lo, D., & Xiao-hu, Y. (2025) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2025.3578390 · Cited by 1 · see citing works
Visualizing the Evolution of Working Sets
Minelli, R., Mocci, A., & Lanza, M. (2016) · IEEE Working Conference on Software Visualization (VISSOFT) · doi:10.1109/vissoft.2016.5 · Cited by 1 · see citing works
Recognizing Developer Activity Based on Joint Modeling of Code and Command Interactions
Ciborowska, A., & Damevski, K. (2020) · IEEE Access · doi:10.1109/access.2020.3040156 · Cited by 1 · see citing works
Enabling Eye Tracking to Study the Use of Software Artifacts on Code Summarization
Nagaraj, S. (2018) · doi:10.22215/etd/2018-15222 · Cited by 1 · see citing works
Consensus task interaction trace recommender to guide developers’ software navigation
Etaiwi, L., Sager, P., Guéhéneuc, Y., & Hamel, S. (2024) · Empirical Software Engineering · doi:10.1007/s10664-024-10528-7
A Retrospective on How Developers Seek, Relate, and Collect Information About Code
Ko, A. J., Myers, B. A., Coblenz, M. J., & Aung, H. H. (2025) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2025.3534071
Grasping AI Reliance in Program Comprehension and Coding through the AIRELI Persona Taxonomy
Alakmeh, T., Anderson, N. B., Jackson, V., Pereira, G. V., Akırmak, Ü., Estey, A., Prikladnicki, R., van der Hoek, A., Storey, M., & Fritz, T. (2026) · IEEE International Conference on Program Comprehension (ICPC) · doi:10.1145/3794763.3794804
Self-citationAutomating Code-Change Rationale Generation to Support Software Maintenance Tasks
Sun, M. (2026) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/3774748.3787676
- Authors
- Fritz, T., Shepherd, D. C., Kevic, K., Snipes, W., & Bräunlich, C.
- Affiliations
- University of Zurich (CH)
- ABB (United States) (US)
- Venue
- Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
- Publisher
- ACM
- Published
- 2014-11-11
- Pages
- 7-18
- OpenAlex
- W1978334736
- Cited by
- 45
- References
- 31
- Citations by year
- 2026: 2 · 2025: 3 · 2024: 2 · 2023: 3 · 2022: 2 · 2020: 4 · 2019: 2 · 2018: 3 · 2017: 6 · 2016: 11 · 2015: 6 · 2014: 1
- FWCI
- 6.82
- Type
- conference paper
- Language
- en
- Open access
- green
- www.zora.uzh.ch
- Locations
- ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) (publishedVersion)
- Zurich Open Repository and Archive (University of Zurich) (acceptedVersion, other-oa)
- Zurich Open Repository and Archive (University of Zurich) (submittedVersion, other-oa)
- Zurich Open Repository and Archive (University of Zurich)
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
- Physical Sciences › Computer Science › Information Systems › Web Applications and Data Management
- Keywords
- code navigation, developer behavior, code search, open source software, program comprehension
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review