Results 1 -
4 of
4
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 reu ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
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.
version of this document can be found under the following addresses:
"... The promise of search-driven development is that developers will save time and resources by reusing foreign code in their local projects. To efficiently integrate this code, users must be able to trust it, thus besides relevance of code search results their trustability is important as well. In this ..."
Abstract
- Add to MetaCart
The promise of search-driven development is that developers will save time and resources by reusing foreign code in their local projects. To efficiently integrate this code, users must be able to trust it, thus besides relevance of code search results their trustability is important as well. In this paper, we introduce a trustability metric to help users assess the quality of code search results and therefore ease the risk-cost-benefit analysis they undertake trying to find suitable integration candidates. The proposed trustability metric incorporates both user votes and cross-project activity of developers to calculate a “karma ” value for each developer. Through the karma value of all its developers a project is ranked on a trustability scale. We present JBender, a proof-of-concept code search engine which implements our trustability metric and we discuss preliminary results from an evaluation of the prototype. Furthermore we discuss findings from the creation of a second prototype—RBender—that deals with structured search over dynamically typed code. iii iv
Immediate Search in the IDE as an Example of Socio- Technical Congruence in Search-Driven Development
"... Search-driven development is mainly concerned with code reuse but also with code navigation and debugging. In this essay we look at search-driven navigation in the IDE. We consider Smalltalk-80 as an example of a programming system with search-driven navigation capabilities and explore its human fac ..."
Abstract
- Add to MetaCart
Search-driven development is mainly concerned with code reuse but also with code navigation and debugging. In this essay we look at search-driven navigation in the IDE. We consider Smalltalk-80 as an example of a programming system with search-driven navigation capabilities and explore its human factors. We present how immediate search results lead to a user experience of code browsing rather than one of waiting for and clicking through search results. We explore the socio-technical congruence of immediate search, i.e. unification of tasks and breakpoints with method calls, which leads to simpler and more extensible development tools. Eventually we conclude with remarks on the sociotechnical congruence of search-driven development. 1.
A Prolog-based Framework for Search, Integration and Empirical Analysis on Software Evolution Data
"... Software projects use different repositories for storing project and evolution information such as source code, bugs and patches. An integrated system that combines these multiple repositories and can answer a broad range of queries regarding the project’s evolution history would be beneficial to bo ..."
Abstract
- Add to MetaCart
Software projects use different repositories for storing project and evolution information such as source code, bugs and patches. An integrated system that combines these multiple repositories and can answer a broad range of queries regarding the project’s evolution history would be beneficial to both software developers and researchers. For example, the list of source code changes or the list of developers associated with a bug fix are frequent queries for both developers and researchers. Integrating and gathering this information is a tedious, cumbersome, error-prone process when done manually, especially for large projects. Previous approaches to this problem use frameworks that limit the user to a set of pre-defined query templates, or use query languages with limited power. In this paper, we argue the need for a framework built with recursively enumerable languages, that can answer temporal queries, and supports negation and recursion. As a first step toward such a framework, we present a Prolog-based system that we built, along with an evaluation of real-world integrated data from the Firefox project. Our system allows for elegant and concise, yet powerful queries, and can be used by developers and researchers for frequent development and empirical analysis tasks.

