> > | The Fishtail concept originates in work done by Reid Holmes, Robert Walker, and Gail on the Strathcona example recommendation tool (http://dx.doi.org/10.1145/1062455.1062491 ). In Strathcona, the developer suggests a starting point for the search, either a class, method, or field declaration. The tool parses the surrounding source file, and extracts certain structural characteristics, such as the parent classes and interfaces, the methods called, and the types referenced. It then queries a repository of examples for those that have matching structural characteristics.
Fishtail differs from Strathcona in a few key ways:
- Searches can triggered automatically, without direct action on the part of the developer, solely based on changes in the task context.
- Search is based on keywords, rather than structure matching. The search keywords are derived from the most recent change to the task context. The package name, class name, and method name associated with the change are used as keywords.
- The search is conducted across the entire web, using the Google search engine, rather than being confined to a custom repository of code examples.
Many researchers have recognized the importance of examples in the development process, and sought ways to make relevant sample code more accessible to the programmer.
Mica (http://dx.doi.org/10.1109/VLHCC.2006.32 ) is a web application which provides a programmer-centric frontend on the Google search engine. Programmers enter their search keywords just as they would at the Google search page. Results are also displayed as they normally would be, however, those that contain official Javadoc documentation and those that contain source code are flagged with specific icons. Mica also analyzes a large range of the result pages returned by the query for common programming keywords (e.g. class and method names from the JDK). The common keywords are ranked by frequency and displayed in a separate column along with search results. Thus Mica extends and customizes the search experience, but does not offer any integration with the IDE and the projects it contains.
Codetrail (http://dx.doi.org/10.1109/VLHCC.2008.4639060 ) takes the approach of binding the Eclipse IDE and the Firefox browser through a communication channel. This channel facilitates linking the code under development with related pages on the web. The key difference here is that Codetrail does not suggest new web links to the user. Instead, it examines recently browsed web pages and uses keyword search and sequence alignment to identify pages that may be relevant to the user's Eclipse projects.
|