skip to main content
10.1145/2635868.2635905acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Developers' code context models for change tasks

Published: 11 November 2014 Publication History

Abstract

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.

References

[1]
bugs.eclipse.org/bugs/.
[2]
https://github.com/abb-iss/study-artifacts-for-codecontext-models.
[3]
www.eclipse.org/mylyn/.
[4]
V. R. Basili, R. W. Selby, and D. H. Hutchens. Experimentation in software engineering. IEEE Trans. on Softw. Eng., 1986.
[5]
A. Bragdon, R. Zeleznik, S. P. Reiss, S. Karumuri, W. Cheung, J. Kaplan, C. Coleman, F. Adeputra, and J. J. LaViola, Jr. Code bubbles: a working set-based interface for code understanding and maintenance. In Proc. of CHI’10, 2010.
[6]
R. Brooks. Using a behavioral theory of program comprehension in software engineering. In Proceedings of the 3rd international conference on Software engineering, ICSE ’78, pages 196–201, Piscataway, NJ, USA, 1978. IEEE Press.
[7]
R. Brooks. Towards a theory of the comprehension of computer programs. International Journal of Man-Machine Studies, 18(6):543 – 554, 1983.
[8]
C. L. Corritore and S. Wiedenbeck. Mental representations of expert procedural and object-oriented programmers in a software maintenance task. Int. Journal of Human-Computer Studies, 50(1):61 – 83, 1999.
[9]
R. DeLine, A. Khella, M. Czerwinski, and G. Robertson. Towards understanding programs through wearbased filtering. In Proc. of SoftVis’05, pages 183–192. ACM, 2005.
[10]
B. Fluri, M. Wursch, M. Pinzger, and H. Gall. Change distilling:tree differencing for fine-grained source code change extraction. Software Engineering, IEEE Transactions on, 33(11):725–743, 2007.
[11]
E. Hill, L. Pollock, and K. Vijay-Shanker. Exploring the neighborhood with dora to expedite software maintenance. In Proc. of ASE’07, 2007.
[12]
D. Janzen and K. De Volder. Navigating and querying code without getting lost. In Proceedings of the 2nd international conference on Aspect-oriented software development, pages 178–187. ACM, 2003.
[13]
M. Kersten and G. C. Murphy. Using task context to improve programmer productivity. In Proc. of FSE’06, 2006.
[14]
A. J. Ko, H. H. Aung, and B. A. Myers. Eliciting design requirements for maintenance-oriented ides: a detailed study of corrective and perfective maintenance tasks. In Software Engineering, 2005. ICSE 2005. Proceedings. 27th International Conference on, pages 126–135. IEEE, 2005.
[15]
A. J. Ko, B. A. Myers, M. J. Coblenz, and H. H. Aung. An exploratory study of how developers seek, relate, and collect relevant information during soft. maintenance tasks. IEEE Trans. on Soft. Eng., 32:971–987, 2006.
[16]
T. D. LaToza, D. Garlan, J. D. Herbsleb, and B. A. Myers. Program comprehension as fact finding. In Proc. of ESEC/FSE’07, 2007.
[17]
T. D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models: a study of developer work habits. In Proc. of ICSE’06, 2006.
[18]
J. Lawrance, R. Bellamy, M. Burnett, and K. Rector. Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 2008.
[19]
C. McMillan, M. Grechanik, D. Poshyvanyk, Q. Xie, and C. Fu. Portfolio: finding relevant functions and their usage. In Proc. of ICSE’11.
[20]
G. C. Murphy, M. Kersten, M. P. Robillard, and D. ˇ Cubrani´ c. The emergent structure of development tasks. In Proc. of ECOOP’05, pages 33–48, 2005.
[21]
N. Pennington. Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive Psychology, 19(3):295 – 341, 1987.
[22]
D. Piorkowski, S. Fleming, C. Scaffidi, C. Bogart, M. Burnett, B. John, R. Bellamy, and C. Swart. Reactive information foraging: an empirical investigation of theory-based recommender systems for programmers. In Proc. of Human Factors in Computing Sys., 2012.
[23]
M. Robillard, W. Coelho, and G. Murphy. How effective developers investigate source code: an exploratory study. IEEE Trans. on Softw. Eng., 30(12):889 – 903, dec. 2004.
[24]
M. P. Robillard and G. C. Murphy. Concern graphs: finding and describing concerns using structural program dependencies. In Proc. of ICSE’02, 2002.
[25]
C. Seaman. Qualitative methods in empirical studies of software engineering. IEEE Trans. on Soft. Eng., 25(4):557 –572, jul/aug 1999.
[26]
J. Sillito, K. De Voider, B. Fisher, and G. Murphy. Managing software change tasks: An exploratory study. In Empirical Software Engineering, 2005. 2005 International Symposium on, pages 10–pp. IEEE, 2005.
[27]
J. Sillito, G. C. Murphy, and K. D. Volder. Questions programmers ask during software evolution tasks. In Proc. of FSE’06, 2006.
[28]
J. Singer, T. Lethbridge, N. Vinson, and N. Anquetil. An examination of software engineering work practices. In Proc. of Centre for Adv. Studies on Collaborative Research, 1997.
[29]
W. Snipes, A. Nair, and E. Murphy-Hill. Experiences Gamifying Developer Adoption of Practices and Tools. In Software Engineering, 2014. ICSE 2014. IEEE 36st International Conference on, 2014.
[30]
J. Starke, C. Luce, and J. Sillito. Searching and skimming: An exploratory study. In Proc. of ICSM’09, 2009.
[31]
M.-A. Storey, F. D. Fracchia, and H. A. Müller. Cognitive design elements to support the construction of a mental model during software exploration. Journal of Systems and Software, 44(3):171–185, 1999.
[32]
A. von Mayrhauser and A. M. Vans. Comprehension processes during large scale maintenance. In Proc. of ICSE’94., 1994.
[33]
J. Wang, X. Peng, Z. Xing, and W. Zhao. An exploratory study of feature location process: Distinct phases, recurring patterns, and elementary actions. 2011.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FSE 2014: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
November 2014
856 pages
ISBN:9781450330565
DOI:10.1145/2635868
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 the author(s) 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: 11 November 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Context models
  2. change task
  3. navigation
  4. search
  5. user study

Qualifiers

  • Research-article

Conference

SIGSOFT/FSE'14
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)35
  • Downloads (Last 6 weeks)3
Reflects downloads up to 27 Jan 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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media