Using information fragments to answer the questions developers ask

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.

[1]  Janice Singer,et al.  Hipikat: a project memory for software development , 2005, IEEE Transactions on Software Engineering.

[2]  Keng Siau,et al.  The effect of data model, system and task characteristics on user query performance: an empirical study , 1997, DATB.

[3]  Gail C. Murphy,et al.  Answering conceptual queries with Ferret , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[4]  Elnar Hajiyev,et al.  codeQuest: Scalable Source Code Queries with Datalog , 2006, ECOOP.

[5]  Brad A. Myers,et al.  What to do when search fails: finding information by association , 2008, CHI.

[6]  Kris De Volder,et al.  Navigating and querying code without getting lost , 2003, AOSD '03.

[7]  Atul Prakash,et al.  A Query Algebra for Program Databases , 1996, IEEE Trans. Software Eng..

[8]  Gail C. Murphy,et al.  Questions programmers ask during software evolution tasks , 2006, SIGSOFT '06/FSE-14.

[9]  Andrew Begel,et al.  Deep intellisense: a tool for rehydrating evaporated information , 2008, MSR '08.

[10]  Gail C. Murphy,et al.  Search, stitch, view: Easing information integration in an IDE , 2009, 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation.

[11]  David R. Karger,et al.  Haystack: A Platform for Authoring End User Semantic Web Applications , 2003, WWW.

[12]  Yunwen Ye,et al.  A socio-technical framework for supporting programmers , 2007, ESEC-FSE '07.

[13]  Mark A. Linton Implementing relational views of programs , 1984 .

[14]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.

[15]  Robert DeLine,et al.  Information Needs in Collocated Software Development Teams , 2007, 29th International Conference on Software Engineering (ICSE'07).

[16]  Abraham Bernstein,et al.  Repositories with iSPARQL and a Software Evolution Ontology , 2007 .