Databases Reference
In-Depth Information
[ 33 ]. Blueprint automatically generates queries with code context for a developer
and presents a code-centric view of Google search results in an IDE [ 6 ]. Mica makes
it easier for a developer to explore Google search results by providing appropriate
relevance cues for the information that he or she wants to know [ 30 ]. The approach
by Bajracharya et al. helps developers obtain example code that uses similar set of
APIs by using code usage similarity measurements, reformulating a query by show-
ing a tag-cloud of popular words for the current query, and narrowing down results
according to popularity [ 2 ]. API Explorer recommends related APIs to a developer
by using API Exploration Graph, which models the structural relationships between
API elements [ 10 ].
We may also resort to crowd sourcing for query formulation if we could use
search query logs of tens of thousands of developers searching the Web. Such query
logs are typically not publicly available but can be mined through search sugges-
tion services [ 3 ]. Fourney et al. [ 13 ] mine the Google search query log to generate
a Query-Feature (QF) graph, which encodes associations between user goals articu-
lated in queries and the specific features of a solution element relevant to achieving
those goals. Using Google Suggestion and other publicly available search query
suggestion services, their technique performs a standard depth-first or breadth-first
tree traversal “by expanding partial queries one character at a time,” starting with
the keyword a user specifies. The approach has currently been applied in the CUTS
(characterizing usability through search) framework, helping users to access usabil-
ity information of an application system and to identify similar application systems
on the Web [ 14 ]. This technique seems to be straightforwardly extendable to help
developers identify potentially usable APIs, libraries, and frameworks when they
are not sure about how to specify queries.
2.3.3 Locating a Previously Experienced Code Segment
Through Personal Information Management
When a developer has a particular code segment in mind to reuse, the developer may
remember only its existence but not its location, or may even remember it wrongly
(e.g., the code segment was written at some point of time but not saved in a file).
If a developer is unable to find the source code where he or she remembered it,
the developer has to search for it. The developer may use a character string that he
or she has in mind as a query, or use temporal relationships, such as “that's the code
I was working on when the new manager came to our project,” as a retrieval cue to
located potentially related files. Once presented with a searched result, the developer
immediately knows whether it is what he or she has been seeking.
This type of search poses a challenge similar to the one found in the studies on
personal information management [ 4 ]. Proposed tools and empirical studies in the
field are applicable to help developers in this situation. For instance, using a tool
such as Stuff I've Seen, which provides a unified index for email messages, Web
pages, and other types of personal documents through their temporal relationships
Search WWH ::




Custom Search