1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De Volder, Gregor Kiczales Students: Doug Janzen, Rajeswari Rajagopalan,

Slides:



Advertisements
Similar presentations
The Problem Decomposition of programs in terms of classes and in terms of crosscutting concerns are both useful, but languages based on source files allow.
Advertisements

©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
ETX Workshop OOPSLA 2003 Prism pattern recognition for aspect mining Prism is Research in Software Modularization Charles Zhang and Hans-Arno Jacobsen.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
Software Practices Lab. -- The University of British Columbia 1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
Software Practices Lab. -- The University of British Columbia 1 JQuery: Finding your way through scattered code Andrew Eisenberg, Doug Janzen, Kris De.
Programming Creating programs that run on your PC
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
Architecture Eclipse Framework with Plugin Concept JTransformer Plugin Analysis + Transformation interface: logical Program.language keeps representation.
mbe/pa/olm 1 Integration of BETA with Eclipse eTX presentation Barcelona 2004 Peter Andersen Mads Brøgger Enevoldsen Ole Lehrmann Madsen.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Eclipse Introduction Dwight Deugo Nesa Matic
Basic Definitions Data Structures: Data Structures: A data structure is a systematic way of organizing and accessing data. Or, It’s the logical relationship.
14 1 Chapter 14 Database Connectivity and Web Development Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
UNIT4 BUSINESS ANALYTICS. page WHAT IS THE PRODUCT? 2 A business intelligence tool kit, specializing in Coporate Performance Management An application.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
Project Implementation for COSC 5050 Distributed Database Applications Lab1.
© 2005 UBC; made available under the EPL v1.0 mylar a degree-of-interest model for eclipse Mik Kersten Gail Murphy Shawn.
Brian de Alwis and Gail Murphy Dept of Computer Science University of British Columbia, Canada Presented at the International Conference on Software Engineering.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Ali Shahrokni Application Components Activities Services Content providers Broadcast receivers.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
Lesson 6. GCSE Computing – programming languages Candidates should be able to:  describe common tools and facilities available in an integrated development.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
1 3. Computing System Fundamentals 3.1 Language Translators.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Introduction to Eclipse. What is Eclipse? An Integrated Development Environment Provides many features to ease C++ programming (and others, e.g. C/Java)
Eclipse Eclipse An IDE is an Integrated Development Environment Different IDEs meet different needs – BlueJ, DrJava are designed as teaching.
Eclipse. An IDE is an Integrated Development Environment Different IDEs meet different needs BlueJ, DrJava are designed as teaching tools Emphasis is.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
CaDSR Software Users Meeting 3.1 Requirements Review 9/19/2005 caDSR Software Team Host: Denise Warzel NCICB, Assistant Director, caDSR.
Eclipse 24-Apr-17.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Eclipse. An IDE is an Integrated Development Environment Different IDEs meet different needs BlueJ, DrJava are designed as teaching tools Emphasis is.
Introduction to Common Java Development Tools (1) 1.
1 JTransformer Framework Tobias Windeln Institut für Informatik III Rheinische Friedrich-Wilhelms-Universität Bonn.
DrJava A lightweight pedagogic environment for Java Eric Allen, Robert Cartwright, and Brian Stoler Rice University
Development with Eclipse Software Engineering Prof. Werner Krandick.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
CPSC 871 John D. McGregor Process – an introduction Module 0 Session 3.
Chapter 3 JSP Overview. The Problem with Servlets processing the request and generating the response are both handled by a single servlet class Java programming.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
Asya Stoyanova-Doycheva University of Plovdiv Bulgaria eLSEBuilder and RFAgent – eLearning Supporting Tools in Software Engineering 1.
Software Deployment & Release 26/03/2015 1EN-ICE.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Andy Clement, George Harley IBM Hursley Labs.
Eclipse 27-Apr-17.
J AVA T RAINING IN A HMEDABAD By TOPS Technologies 1 TOPS Technologies Java Course.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Thinking of Drupal 8? Get started with the resources.
Java IDE Dwight Deugo Nesa Matic
Computer Programming - Key Concepts and Terms Computer Program – A computer program is a set of instructions for computer, arranged in logical order, using.
DEV-21: Embracing OpenEdge ® Architect Sunil S Belgaonkar Software Architect.
C Copyright © 2009, Oracle. All rights reserved. Using SQL Developer.
Before You Begin Nahla Abuel-ola /WIT.
Working in the Forms Developer Environment
SWE-795 Presentation 01 11/16/2018 Asking and Answering Questions during a Programming Change Task Jonathan Sillito, Member, IEEE Computer Society, Gail.
Software Design Lecture : 14.
Database Connectivity and Web Development
By Rajanikanth B Eclipse IDE Overview By Rajanikanth B
Review of Previous Lesson
Presentation transcript:

1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De Volder, Gregor Kiczales Students: Doug Janzen, Rajeswari Rajagopalan, Ray Suprio This project is supported by an OTI “Eclipse Fellowship” program Software Practices Lab. -- The University of British Columbia

2 Different Approaches to “Modularity” Programming Language Support –Modularity defined by how code is written –For example: aspects in AspectJ, classes in Java  “Hard” modularity. Tool Support –Modularity defined by how code is viewed –For example: code browsers  “Soft” modularity organization can crosscut PL modules remodularize/reorganize “on the fly” multiple simultaneous decompositions

3 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 … Derived by calling Eclipse API’s

4 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 Also… we can use JQuery for experimentation.

5 The JQuery Eclipse plugin

6 How to organize results Query Tree-view on query results

7 Example 1: Method Browser Methods in tyRuBa.util organized by name

8 Example 2: Instance Creation Browser Where are instances of RE created?

9 Example 3: Category Browsers Custom tags attached to classes, interfaces and methods

10 Example 3: “Class Category Browser” Classes + interfaces optimization tags

11 Example 4: Customizing Browsers Exploring creation of Figures in JHotdraw. Edit a copy of Instance Creation Browser to only show subtypes of “Figure”

12 Example 4: Customizing Browsers The resulting Figure Creation Browser: Want to know more about this?

13 Example 4: Customizing Browsers The resulting Figure Creation Browser: This is a “sub-browser”

14 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…

15 Download The JQuery Tool A Generic Query-Based Code browser for Eclipse JDT Download The latest release of the JQuery plugin + papers about JQuery