Difference: Fishtail (1 vs. 2)

Revision 22011-01-06 - NickSawadsky

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Quick Links

Line: 27 to 27
 

Fishtail Approach and Related Work

Changed:
<
<
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).
>
>
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.

  -- NickSawadsky - 06 Jan 2011

Revision 12011-01-06 - NickSawadsky

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="WebHome"

Quick Links

Status (Jan 2011)

The plugin available from the project page is not compatible with the latest versions of Eclipse and Mylyn.

The source code at the link above was decompiled from the jarfile, as the original source repository was lost. The decompiled source has been updated so that it compiles with the latest versions of Eclipse and Mylyn. A plugin built from this source now loads in the latest version of Eclipse (3.6.1, Helios), but there remain a number of issues. Incompatibilities with the latest version of the Google search results page have been fixed. However, results are still not being displayed in the Fishtail view. The origin of this issue is still unknown.

The Visual Studio prototype is very minimal. It simply demonstrates the ability to periodically poll for the location of the cursor in the edit window, and map that location to a structural element in the program source.

Background

The Fishtail Eclipse plugin was originally developed by Nathan Hapke and Gail Murphy during Nathan's internship in late 2007. The basic goal of the plugin is to automatically search the web for code samples and other pages applicable to the user's Mylyn task context. Keywords are automatically generated based on Java structure elements within the context (e.g. class names, method names, package names). The user may augment the search input by manually entering additional keywords. Changes in the task context can automatically trigger searches, or they can be manually initiated by the user. Result links are listed in an Eclipse view.

In fall 2010, Gail and I (Nick) started exploring the possibility of building a similar plugin for Visual Studio 2010. I first wanted to familiarize myself with the existing plugin. It was no longer compatible with the latest versions of Eclipse and Mylyn, and the original source code repository had been lost. I decompiled the jarfile using JD (http://java.decompiler.free.fr/). I then fixed various compile errors, some resulting from the decompilation process, but most related to changes in the Mylyn API. The guide for porting from Mylyn 2.0 to 3.0 was very helpful in this process: http://wiki.eclipse.org/Mylyn/Porting_Guide/3.0.

I also needed to update the code to be compatible with the latest version of the Google search results page (unfortunately, the current implementation does not use the Google web search service, and is tightly coupled with the format of the Google search results page). While the plugin now loads successfully with the latest versions of Eclipse (3.6.1, Helios) and Mylyn (3.4.2), it is still not fully working, as search results do not show up in the Mylyn view.

While some time was expended on trying to get the existing Eclipse plugin working, the majority of my work this past fall has been to explore the technical feasibility of building a similar plugin for Visual Studio 2010, and to try to understand better the value and novelty of the overall approach within the context of current research. Results of this work are summarized in the next two sections.

Fishtail Approach and Related Work

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).

-- NickSawadsky - 06 Jan 2011

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback