Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2820282.2820302acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Two user perspectives in program comprehension: end users and developer users

Published: 16 May 2015 Publication History

Abstract

Recent empirical studies identified an interest of software developers in high-level usage information, i.e. why and how end users employ a software application. Furthermore, recent empirical work found that developers of interactive applications put themselves in the role of users by interacting with the user interface during program comprehension.
This paper presents an exploratory case study investigating these two user perspectives in detail. The study focuses on information needs regarding software usage and developers in the role of users during program comprehension. 21 developers from six software companies were observed during program comprehension tasks and interviewed. The resulting observation protocols and interview minutes were analyzed using coding.
We found that developers are interested in information about use cases and user behavior, user goals and user needs, failure reproduction steps, and application domain concepts. But such information is rarely available to them during program comprehension. This mismatch indicates a potential to improve program comprehension practices by capturing such information and providing it to developers. Furthermore, we found that developers interact with the user interface of an interactive application to reproduce failures, to find relevant source code, to test changes, to trigger the debugger, and to familiarize with an unknown part of the application. Also, developers conceptually map elements of the user interface to source code, data structures, and algorithms. We call this behavior "UI-based comprehension" and argue that it is part of a broader comprehension strategy together with comprehension activities like reading source code or debugging.

References

[1]
A. Begel, K. Y. Phang, and T. Zimmermann. Codebook: Discovering and Exploiting Relationships in Software Repositories. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, pages 125--134. ACM, 2010.
[2]
A. Begel and T. Zimmermann. Analyze This! 145 Questions for Data Scientists in Software Engineering. In Proceedings of the 36th International Conference on Software Engineering, pages 12--23. ACM, 2014.
[3]
S. Breu, R. Premraj, J. Sillito, and T. Zimmermann. Information Needs in Bug Reports: Improving Cooperation Between Developers and Users. In Proceedings of the 2010 ACM Conference on Computer Supported Cooperative work, pages 301--310. ACM, 2010.
[4]
R. P. L. Buse and T. Zimmermann. Information needs for software development analytics. In Proceedings of the 34th International Conference on Software Engineering, pages 987--996. IEEE, 2012.
[5]
C. L. Corritore and S. Wiedenbeck. Direction and Scope of Comprehension-Related Activities by Procedural and Object-Oriented Programmers: An Empirical Study. In Proceedings of the 8th International Workshop on Program Comprehension, pages 139--148. IEEE, 2000.
[6]
J. Creswell. Research design: Qualitative, quantitative, and mixed methods approaches. SAGE Publications, 2009.
[7]
K. Ericsson and H. Simon. Protocol analysis: Verbal reports as data (rev. ed.). MIT Press, 1993.
[8]
T. Fritz and G. C. Murphy. Using information fragments to answer the questions developers ask. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, pages 175--184. ACM, 2010.
[9]
A. Ko, R. DeLine, and G. Venolia. Information needs in collocated software development teams. In Proceedings of the 29th International conference on Software Engineering, pages 344--353. IEEE, 2007.
[10]
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.
[11]
A. J. Ko and B. Uttl. Individual differences in program comprehension strategies in unfamiliar programming systems. In Proceedings of the 11th IEEE International Workshop on Program Comprehension, pages 175--184. IEEE, 2003.
[12]
J. Koenemann and S. P. S. Robertson. Expert problem solving strategies for program comprehension. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pages 125--130. ACM, 1991.
[13]
T. D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models. In Proceedings of the 28th international Conference on Software Engineering, pages 492--501. ACM, 2006.
[14]
E. I. Laukkanen and M. V. Mantyla. Survey Reproduction of Defect Reporting in Industrial Software Development. In Proceedings of the International Symposium on Empirical Software Engineering and Measurement, pages 197--206. IEEE, 2011.
[15]
D. D. C. Littman, J. Pinto, S. Letovsky, and E. Soloway. Mental Models and Software Maintenacne. Journal of Systems and Software, 7(4):341--355, 1987.
[16]
W. Maalej, H.-J. Happel, and R. Asarnusch. When users become collaborators: Towards continuous and context-aware user input. In Proceedings of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications, pages 981--990. ACM, 2009.
[17]
W. Maalej, R. Tiarks, T. Roehm, and R. Koschke. On the Comprehension of Program Comprehension. ACM Transactions on Software Engineering and Methodology, 23(4):31:1--31:37, 2014.
[18]
D. Pagano. PORTNEUF - A Framework for Continuous User Involvement. PhD thesis, 2013.
[19]
M. Robillard, W. Coelho, and G. Murphy. How effective developers investigate source code: an exploratory study. IEEE Transactions on Software Engineering, 30(12):889--903, 2004.
[20]
T. Roehm, R. Tiarks, R. Koschke, and W. Maalej. How do professional developers comprehend software? In Proceedings of the 34th International Conference on Software Engineering, pages 255--265. IEEE, 2012.
[21]
R. L. Rosnow and R. Rosenthal. Beginning behavioral research: A conceptual primer. Pearson, 6th edition, 1996.
[22]
P. Runeson and M. Höst. Guidelines for conducting and reporting case study research in software engineering. Empirical Software Engineering, 14(2):131--164, 2008.
[23]
B. Schinzel. Weltbilder und Bilder der Informatik. Informatik-Spektrum, 36(3):260--266, 2013.
[24]
T. M. Shaft and I. Vessey. The Relevance of Application Domain Knowledge: Characterizing the Computer Program Comprehension Process. Journal of Management Information Systems, 15(1):51--78, 1998.
[25]
J. Sillito, K. De Volder, B. Fisher, and G. Murphy. Managing software change tasks: an exploratory study. In Proceedings of the International Symposium on Empirical Software Engineering, pages 23--32. IEEE, 2005.
[26]
J. Sillito, G. Murphy, and K. De Volder. Asking and Answering Questions during a Programming Change Task. IEEE Transactions on Software Engineering, 34(4):434--451, 2008.
[27]
J. Singer, T. Lethbridge, N. Vinson, and N. Anquetil. An Examination of Software Engineering Work Practices. In Proceedings of the 1997 Conference of the Centre for Advanced Studies on Collaborative Research, pages 174--188. IBM Press, 1997.
[28]
I. Vessey. Expertise in debugging computer programs: A process analysis. International Journal of Man-Machine Studies, 23(5):459--494, 1985.
[29]
T. Zimmermann, R. Premraj, N. Bettenburg, S. Just, A. Schröter, and C. Weiss. What makes a good bug report? IEEE Transactions on Software Engineering, 36(5):618--643, 2010.

Cited By

View all
  • (2017)Comprehending studies on program comprehensionProceedings of the 25th International Conference on Program Comprehension10.1109/ICPC.2017.9(308-311)Online publication date: 20-May-2017

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPC '15: Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension
May 2015
325 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 16 May 2015

Check for updates

Author Tags

  1. case study
  2. comprehension strategy
  3. empirical study
  4. information needs
  5. program comprehension
  6. software evolution
  7. software maintenance
  8. software usage
  9. user interface (ui) comprehension

Qualifiers

  • Research-article

Conference

ICSE '15
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Comprehending studies on program comprehensionProceedings of the 25th International Conference on Program Comprehension10.1109/ICPC.2017.9(308-311)Online publication date: 20-May-2017

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media