The end-to-end use of source code examples: An exploratory study

Source code examples are valuable to developers needing to use an unfamiliar application programming interface (API). Numerous approaches exist to help developers locate source code examples; while some of these help the developer to select the most promising examples, none help the developer to reuse the example itself. Without explicit tool support for the complete end-to-end task, the developer can waste time and energy on examples that ultimately fail to be appropriate; as a result, the overhead required to reuse an example can restrict a developer's willingness to investigate multiple examples to find the “best” one for their situation. This paper outlines four case studies involving the end-to-end use of source code examples: we investigate the overhead and pitfalls involved in combining a few state-of-the-art techniques to support the end-to-end use of source code examples.

[1]  Robert J. Walker,et al.  Approximate Structural Context Matching: An Approach to Recommend Relevant Examples , 2006, IEEE Transactions on Software Engineering.

[2]  Mary Beth Rosson,et al.  The reuse of uses in Smalltalk programming , 1996, TCHI.

[3]  Wladyslaw M. Turski,et al.  No Silver Bullet - Essence and Accidents of Software Engineering - Response , 1986, IFIP Congress.

[4]  Gerhard Fischer,et al.  Cognitive View of Reuse and Redesign , 1987, IEEE Software.

[5]  Harold Ossher,et al.  Automatically locating framework extension examples , 2008, SIGSOFT '08/FSE-16.

[6]  Tao Xie,et al.  Parseweb: a programmer assistant for reusing open source code on the web , 2007, ASE.

[7]  Gerhard Fischer,et al.  Cognitive tools for locating and comprehending software objects for reuse , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[8]  Robert J. Walker,et al.  Task-specific source code dependency investigation , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[9]  Robert J. Walker,et al.  Supporting the Investigation and Planning of Pragmatic Reuse Tasks , 2007, 29th International Conference on Software Engineering (ICSE'07).

[10]  Christopher J. Fox,et al.  Quality Improvement Using A Software Reuse Failure Modes Model , 1996, IEEE Trans. Software Eng..

[11]  Kajal T. Claypool,et al.  XSnippet: mining For sample code , 2006, OOPSLA '06.

[12]  Robert J. Walker,et al.  The End-to-End Use of Source Code Examples: An Exploratory Study—Appendix , 2009 .

[13]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[14]  Laurie J. Hendren,et al.  Enabling static analysis for partial java programs , 2008, OOPSLA.

[15]  Rastislav Bodík,et al.  Jungloid mining: helping to navigate the API jungle , 2005, PLDI '05.

[16]  Jonathan Sillito,et al.  Working with search results , 2009, 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation.

[17]  Jan van Katwijk,et al.  Reuse dimensions , 1995, SSR '95.

[18]  Robert J. Walker,et al.  Semi-automating small-scale source code reuse via structural correspondence , 2008, SIGSOFT '08/FSE-16.

[19]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .