Software Practices Lab. -- The University of British Columbia 1 JQuery: Finding your way through scattered code Andrew Eisenberg, Doug Janzen, Kris De.

Slides:



Advertisements
Similar presentations
Recuperação de Informação B Cap. 10: User Interfaces and Visualization , , , November 29, 1999.
Advertisements

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.
Interaction Design: Visio
Chapter 11 user support. Issues –different types of support at different times –implementation and presentation both important –all need careful design.
HTML5 ETDs Edward A. Fox, Sung Hee Park, Nicholas Lynberg, Jesse Racer, Phil McElmurray Digital Library Research Laboratory Virginia Tech ETD 2010, June.
Intro to ArcGIS for New Users. ArcGIS Desktop Advanced GeoprocessingArcInfo ArcReader Data Access Map Viewing Query Advanced EditingArcEditor ArcView.
US Army Corps of Engineers BUILDING STRONG ® Creating a Data Dictionary for Your Local Data USACE SDSFIE Training Prerequisites: Preparing Your Local Data.
1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De Volder, Gregor Kiczales Students: Doug Janzen, Rajeswari Rajagopalan,
Software Practices Lab. -- The University of British Columbia 1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De.
JQuery with Multiple Views Adding Context to Navigation and Querying of Code.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Paint Shop Tutorial. Essential Overview New Corel Paint Shop Pro Photo X2 is the ideal choice for any aspiring photographer's digital darkroom. It's filled.
ObjectDraw and Objects Early Chris Nevison Barbara Wells.
PowerPoint 2002 Linking Video in Presentation and Delivering Presentation on the Road.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
© Siemens Product Lifecycle Management Software Inc. All rights reserved Siemens PLM Software Solid Edge ST4 Training Revising assemblies.
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
Introduction to ArcGIS Add-Ins Exercises GIS/LIS Conference, 2014 Rochester, MN.
Digital Image Processing Lecture3: Introduction to MATLAB.
6 Copyright © 2004, Oracle. All rights reserved. Working with Data Blocks and Frames.
Getting Started with Application Software
1 1 Lab1 Ismail M. Romi – IT Dept, PPU, Visual Basic 2005 Programming Tour.
UDoCument: Electronic Scrapbook for the Information Era Soufiane Berouel, Undergraduate Student Supervised by Prof. Lily Liang Department of Computer Science.
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
© 2005 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures for Java William H. Ford William R. Topp Appendix E The EZJava.
Interaction Design Interaction Design - Joan Cahill - Visio Interaction Design: Visio.
Introduction of Geoprocessing Topic 7a 4/10/2007.
CHAPTER TEN AUTHORING.
2. Recording a Macro. Macro Recording Select Record Macro from the Macro file menu and the dialog box opposite will appear Your macro will require a name.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Chapter One An Introduction to Visual Basic 2010 Programming with Microsoft Visual Basic th Edition.
Are you getting the benefits from ASP.NET and AJAX? Introduction to the CTC ASP.NET Webforms Generator.
CREATING FORMS AND REPORTS By: Dr. Ennis-Cole. OBJECTIVES: Create and change a form with the Wizard Navigate and find data using a form Preview and print.
Chapter 16 Applying UML and Patterns Craig Larman
Visual Basic.NET BASICS Lesson 1 A First Look at Microsoft Visual Basic.NET.
Microsoft Visual Basic 2005 BASICS Lesson 1 A First Look at Microsoft Visual Basic.
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to the Visual Studio.NET IDE Outline 2.1Introduction 2.2Visual Studio.NET Integrated.
1 How to Install OpenGL u Software running under Microsoft Windows makes extensive use of "dynamic link libraries." A dynamic link library (DLL) is a set.
Learningcomputer.com SQL Server 2008 – Management Studio.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Object-Oriented Application Development Using VB.NET 1 Chapter 2 The Visual Studio.NET Development Environment.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Introduction of Geoprocessing Lecture 9 3/24/2008.
Object-Oriented Programming: Inheritance and Polymorphism.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
What Is Firefox? __________ is a Web ___________ that you use to search for and view Web pages, save pages for use in the future, and maintain a list.
E Copyright © 2006, Oracle. All rights reserved. Using SQL Developer.
Installing and Using Evolve Evolve is written in Java and runs on any system with Java 1.6 Download Evolve from Unzip.
Java IDE Dwight Deugo Nesa Matic
C Copyright © 2009, Oracle. All rights reserved. Using SQL Developer.
FIRST COURSE Exploring the Basics of Microsoft Windows Vista.
Working with Data Blocks and Frames
Programming paradigms
Working in the Forms Developer Environment
CARA 3.10 Major New Features
Object-Oriented Software Engineering Using UML, Patterns, and Java,
MICROSOFT OUTLOOK and Outlook service Provider
Lecture 23 Polymorphism Richard Gesick.
Planning a Group Policy Management and Implementation Strategy
Chapter 2 – Introduction to the Visual Studio .NET IDE
Welcome to E-Prime E-Prime refers to the Experimenter’s Prime (best) development studio for the creation of computerized behavioral research. E-Prime is.
Frameworks And Patterns
Extend Text Editor to Draw shapes
Digital Image Processing
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Object-Oriented Programming: Inheritance and Polymorphism
Chapter 11 user support.
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Microsoft Windows 7 Basics
Presentation transcript:

Software Practices Lab. -- The University of British Columbia 1 JQuery: Finding your way through scattered code Andrew Eisenberg, Doug Janzen, Kris De Volder, Ryan Wannop Software Practices Lab. -- The University of British Columbia

2 Typical ways to explore scattered concerns: Browse structural views -package structures, inheritance hierarchy Search for a specific pattern -regular expressions Follow relationships -calls, instantiates, references JQuery: Motivation Most modern IDEs can help with all of this, but…

Software Practices Lab. -- The University of British Columbia 3 JQuery: Motivation Explosion of browsers Package Explorer Search Call Hierarchy Inheritance Hierarchy Browsers are too specific Poor use of screen Real- Estate Exploration itself is scattered and tangled

Software Practices Lab. -- The University of British Columbia 4 JQuery: How it works Avoiding loss of context: Problem: Too many browsers leads to loss of context. Solution: Support many views within a single tool. Choose New Browser Start with Package Browser

Software Practices Lab. -- The University of British Columbia 5 JQuery: How it works Abstract Class Browser Both views in same window Package Browser Bundled with many more browsers

Software Practices Lab. -- The University of British Columbia 6 JQuery: How it works Incrementally perform the exploration by extending each view with a sub-view 1.Select extension point

Software Practices Lab. -- The University of British Columbia 7 JQuery: How it works Incrementally perform the exploration by extending views with a new extensions 1.Select extension point 2.Choose sub- query

Software Practices Lab. -- The University of British Columbia 8 JQuery: How it works Incrementally perform the exploration by extending views with a new extensions 1.Select extension point 2.Choose sub- query 3.Continue exploration Bundled with many more sub-browsers

Software Practices Lab. -- The University of British Columbia 9 JQuery: How it works Filtering by regular expression Search for “Figure”: Open query dialog double-click

Software Practices Lab. -- The University of British Columbia 10 JQuery: How it works Filtering by regular expression Search for “Figure”: Open query dialog Edit query

Software Practices Lab. -- The University of British Columbia 11 JQuery: How it works Filtering by regular expression Search for “Figure”: Open query dialog Edit query Close dialogue (query automatically re- executes)

Software Practices Lab. -- The University of British Columbia 12 JQuery: How it works Filtering by regular expression Browser is now filtered by “Figure” Can customize queries in many other ways too.

Software Practices Lab. -- The University of British Columbia 13 JQuery: An Example Make a enhancement to the JHotDraw codebase. Non- trivial, but some details abstracted away. Based on an actual task we performed with little prior knowledge of the codebase. Task:

Software Practices Lab. -- The University of British Columbia 14 JQuery: The Plan RectangleText ??? Frame No Frame Menu Change Pen Color

Software Practices Lab. -- The University of British Columbia 15 JQuery: Executing the Plan Menu Change Pen Color Rectangle Text FrameNo Frame Change Attribute Command Found by regex search for *Attribute* ??? Step 1: Find menu creation Step 2: Find relationship to frames

Software Practices Lab. -- The University of British Columbia 16 JQuery: Executing the Plan Change Attribute Command Rectangle ??? Text FrameNo Frame Determined that Pen Color sets Menu FrameColor Attribute execute creates Draw Application createColorMenu calls createAttrMenu

Software Practices Lab. -- The University of British Columbia 17 Attribute Figure setAttr implemented by JQuery: Executing the Plan Change Attribute Command Draw Application Rectangle Text FrameNo Frame sidetrack to explore FigureAttributes getAttr execute Figure setAttr calls createAttrMenu drawFr dataflow createColorMenu creates calls Determined that Pen Color sets FrameColor Attribute

Software Practices Lab. -- The University of British Columbia 18 JQuery: Executing the Plan Change Attribute Command Rectangle Figure Text Figure change this method Figure Attribute Figure getAttr drawFr setAttr drawFr implemented by drawFr execute Draw Application createAttrMenu createColorMenu calls creates implemented by calls dataflow sidetrack to explore FigureAttributes Determined that Pen Color sets FrameColor Attribute

Software Practices Lab. -- The University of British Columbia 19 JQuery: Versatile Code Navigator 1. Browsing structural views 2. Searching for a specific pattern 3. Following relationships Current IDE’s: “explosion” of disconnected views loss of context disorientation JQuery: within a single navigation view retain context reduce disorientation Browse Scattered Code

Software Practices Lab. -- The University of British Columbia 20 JQuery: Customization JQuery can do more: can create more powerful queries can include data from other tools has extendable menu items virtual source files (in next release) See our website!

Software Practices Lab. -- The University of British Columbia 21 JQuery: De-tangling searching Why use 4 browsers when you can use 1?

Software Practices Lab. -- The University of British Columbia 22 Questions? Google: Download JQuery (new release out soon): Prevents tangled and scattered searches Reduces disorientation of complex exploration Maintains context Andrew Eisenberg:

Software Practices Lab. -- The University of British Columbia 23 JQuery: Executing the Plan Change Attribute Command Found by regex search for *Attribute* Draw Application Created by createAttributesMenu() calls createColorMenu() Determined that Pen Color represented by frameColor Attribute Figure execute() calls setAttr() calls to getAttr(), getFrameColor(), and draw() Rectangle Figure Text Figure overrides drawFrame() Attribute Figure implements setAttr() sidetrack to explore FigureAttributes altered drawFrame()

Software Practices Lab. -- The University of British Columbia 24 JQuery: Executing the Plan Change Attribute Command Draw Application Created by createAttributesMenu() calls createColorMenu() Rectangle Text FrameNo Frame Figure execute() calls setAttr(“frameColor”) getAttr() called by getFrameColor() called by draw() Attribute Figure implements setAttr() sidetrack to explore FigureAttributes

Software Practices Lab. -- The University of British Columbia 25 JQuery: How it works source code facts.java analyze queries Package Browser Interface Browser Method Browser results Avoiding loss of context: Problem: Too many browsers leads to loss of context. Solution: Support many views within a single tool.

Software Practices Lab. -- The University of British Columbia 26 JQuery: How it works source code facts query results Avoiding loss of context: results query The answer to a query prompts another query

Software Practices Lab. -- The University of British Columbia 27 JQuery: Finished! Change Attribute Command Draw Application Created by Figure Rectangle Figure Text Figure Attribute Figure Step 1: Step 2: