ABSTRACT
Each day, a software developer needs to answer a variety of questions that require the integration of different kinds of project information. Currently, answering these questions, such as "What have my co-workers been doing?", is tedious, and sometimes impossible, because the only support available requires the developer to manually link and traverse the information step-by-step. Through interviews with eleven professional developers, we identified 78 questions developers want to ask, but for which support is lacking. We introduce an information fragment model (and prototype tool) that automates the composition of different kinds of information and that allows developers to easily choose how to display the composed information. In a study, 18 professional developers used the prototype tool to answer eight of the 78 questions. All developers were able to easily use the prototype to successfully answer 94% of questions in a mean time of 2.3 minutes per question.
- H. Chan, K. Siau, and K.-K. Wei. The effect of data model, system and task characteristics on user query performance: an empirical study. SIGMIS Database, pages 31--49, 1997. Google ScholarDigital Library
- D. H. Chau, B. Myers, and A. Faulring. What to do when search fails: finding information by association. In Proc. of CHI '08, pages 999--1008, 2008. Google ScholarDigital Library
- B. de Alwis and G. C. Murphy. Answering conceptual queries with ferret. In Proc. of ICSE'08, pages 21--30, 2008. Google ScholarDigital Library
- T. Fritz and G. C. Murphy. Search, stitch, view: Easing information integration in an IDE. In SUITE'09, pages 9--12, 2009. Google ScholarDigital Library
- E. Hajiyev, M. Verbaere, and O. de Moor. Codequest: Scalable source code queries with datalog. In Proc. of ECOOP'06, pages 2--27, 2006. Google ScholarDigital Library
- R. Holmes and A. Begel. Deep intellisense: a tool for rehydrating evaporated information. In Proc. of MSR'08, pages 23--26, 2008. Google ScholarDigital Library
- D. Janzen and K. D. Volder. Navigating and querying code without getting lost. In Proc. of AOSD'03, pages 178--187, 2003. Google ScholarDigital Library
- C. Kiefer, A. Bernstein, and J. Tappolet. Mining software repositories with isparql and a software evolution ontology. In ICSEW '07, page 10, 2007. Google ScholarDigital Library
- A. J. Ko, R. DeLine, and G. Venolia. Information needs in collocated software development teams. In Proc. of ICSE'07, pages 344--353, 2007. Google ScholarDigital Library
- T. D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models: a study of developer work habits. In Proc. of ICSE'06, pages 492--501, 2006. Google ScholarDigital Library
- M. A. Linton. Implementing relational views of programs. In Proc. of SDE 1, pages 132--140, 1984. Google ScholarDigital Library
- S. Paul and A. Prakash. A query algebra for program databases. IEEE Trans. Softw. Eng., pages 202--217, 1996. Google ScholarDigital Library
- D. Quan, D. Huynh, and D. R. Karger. Haystack: A platform for authoring end user semantic web applications. In Proc. of ISWC'03, pages 738--753, 2003.Google ScholarDigital Library
- J. Sillito, G. C. Murphy, and K. D. Volder. Questions programmers ask during software evolution tasks. In Proc. of FSE'06, pages 23--34, 2006. Google ScholarDigital Library
- D. Čubranić, G. C. Murphy, J. Singer, and K. S. Booth. Hipikat: A project memory for software development. IEEE Trans. Softw. Eng., pages 446--465, 2005. Google ScholarDigital Library
- Y. Ye, Y. Yamamoto, and K. Nakakoji. A socio-technical framework for supporting programmers. In Proc. of ESEC-FSE'07, pages 351--360, 2007. Google ScholarDigital Library
Recommendations
A degree-of-knowledge model to capture source code familiarity
ICSE '10: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1The size and high rate of change of source code comprising a software system make it difficult for software developers to keep up with who on the team knows about particular parts of the code. Existing approaches to this problem are based solely on ...
Degree-of-knowledge: Modeling a developer's knowledge of code
As a software system evolves, the system's codebase constantly changes, making it difficult for developers to answer such questions as who is knowledgeable about particular parts of the code or who needs to know about changes made. In this article, we ...
Does a programmer's activity indicate knowledge of code?
ESEC-FSE '07: Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineeringThe practice of software development can likely be improved if an externalized model of each programmer's knowledge of a particular code base is available. Some tools already assume a useful form of such a model can be created from data collected during ...
Comments