The JQuery Tool
A Generic Query-Based
Code browser
for Eclipse
This project is supported by OTI “Eclipse Fellowship” program
Project leaders:
Kris De Volder, Gregor Kiczales
Students:
Doug Janzen, Rajeswari Rajagopalan,
Ray Suprio
Software Practices Lab. -- The University of British Columbia
1
Why JQuery?
•
IDE have a “too many browsers” problem
– Different type of view = different type of browser tool
•
Why is this undesirable?
– Usage issues
• Disorientation caused by switching between browsers
– Implementation issues
• Must implement many different browsers
• Hard to support highly specific browsers
– e.g. aware of specific naming / coding conventions
– specific to a task
Software Practices Lab. -- The University of British Columbia
2
JQuery: A Generic Browser
Idea:
Browser =
navigable view on the result of a query
expressed in a sufficiently expressive query language,
run against a suitable “data-base” of code.
Prolog-like logic language
Facts describing code structure:
• class, method, field declarations
• inheritance relationships
• calling dependencies
• …
Software Practices Lab. -- The University of British Columbia
Derived by calling
Eclipse API’s
3
The JQuery Eclipse plugin
Software Practices Lab. -- The University of British Columbia
4
The JQuery Eclipse plugin
How to organize results
Query
Tree-view on query results
Software Practices Lab. -- The University of British Columbia
5
Example 1: Method Browser
Methods in tyRuBa.util
organized by name
Software Practices Lab. -- The University of British Columbia
6
Example 2: Instance Creation Browser
Where are instances of
RE created?
Software Practices Lab. -- The University of British Columbia
7
Example 3: “Category Browser”
Custom JavaDoc @category tags attached to classes,
interfaces and methods
Software Practices Lab. -- The University of British Columbia
8
Example 3: “Class Category Browser”
Classes + interfaces with
@category optimization
tags
Software Practices Lab. -- The University of British Columbia
9
Example 4: Customizing Browsers
Exploring creation of Figures in JHotdraw.
Edit a copy of
Instance Creation
Browser
to only show
subtypes of
“Figure”
Software Practices Lab. -- The University of British Columbia
10
Example 4: Customizing Browsers
The resulting Figure Creation Browser:
Want to know more about this?
Software Practices Lab. -- The University of British Columbia
11
Example 4: Customizing Browsers
The resulting Figure Creation Browser:
Add a
“sub-browser”
Software Practices Lab. -- The University of British Columbia
12
Our Experience with Eclipse
What we liked…
– Nice integration of our tool with professional IDE
– API access to Java source model
– Eclipse incremental compiler
We can even run queries
on code that contains compilation errors!!!
What we didn’t like so much
– Steep learning curve for the API’s
e.g: to get our “code facts” do we…
– Use the AST package?
– Or use the more high-level search engine API?
Search engine looked good but…
Software Practices Lab. -- The University of British Columbia
13
Download
The JQuery Tool
A Generic Query-Based Code browser for Eclipse JDT
Download
The latest release of the JQuery plugin
+
papers about JQuery
http://www.cs.ubc.ca/labs/spl/projects/jquery.html
Software Practices Lab. -- The University of British Columbia
14
Descargar

PowerPoint Presentation - JQuery Eclipse BoF presentation