SlideShare a Scribd company logo
1 of 22
Software Practices Lab. -- The University of British Columbia
JQuery:
Finding your way through
scattered code
Andrew Eisenberg, Doug Janzen,
Kris De Volder, Ryan Wannop
Software Practices Lab. -- The University of British Columbia
Software Practices Lab. -- The University of British Columbia
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
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
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
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
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
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
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
JQuery: How it works
Filtering by regular expression
Search for “Figure”:
• Open query dialog
• double-click
Software Practices Lab. -- The University of British Columbia
JQuery: How it works
Filtering by regular expression
Search for “Figure”:
• Open query dialog
• Edit query
Software Practices Lab. -- The University of British Columbia
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
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
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
JQuery: The Plan
Rectangle Text
??????
Frame No Frame
Menu
Change
Pen Color
Software Practices Lab. -- The University of British Columbia
JQuery: Executing the Plan
Menu
Change
Pen Color
Rectangle Text
Frame No 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
JQuery: Executing the Plan
Change
Attribute
Command
Rectangle
??????
Text
Frame No Frame
Determined that Pen
Color sets Menu
FrameColor Attribute
execute
creates
Draw
Application
createColorMenu
calls
createAttrMenu
Software Practices Lab. -- The University of British Columbia
Attribute
Figure
setAttr
implemented by
JQuery: Executing the Plan
Change
Attribute
Command
Draw
Application
Rectangle Text
Frame No Frame
sidetrack to explore
FigureAttributes
getAttr
execute
Figure setAttr
callscreateAttrMenu
drawFr
dataflow
createColorMenu
creates
calls
Determined that Pen
Color sets
FrameColor Attribute
Software Practices Lab. -- The University of British Columbia
JQuery: Executing the Plan
Change
Attribute
Command
Rectangle
Figure
Text
Figure
change this
method
Figure
Attribute
Figure
getAttr
drawFr
setAttr
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
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
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
JQuery: De-tangling searching
Why use 4 browsers when you can
use 1?
Software Practices Lab. -- The University of British Columbia
Questions?
Google:
Download JQuery (new release out soon):
Prevents tangled and scattered
searches
Reduces disorientation of complex
exploration
Maintains context
Andrew Eisenberg:
ade@cs.ubc.ca

More Related Content

Similar to J query aosddemo_2004

Selenium and JMeter Testing
Selenium and JMeter TestingSelenium and JMeter Testing
Selenium and JMeter TestingArchanaKalapgar
 
Browser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsBrowser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsLuís Bastião Silva
 
Chapter15-Presentation.pptx
Chapter15-Presentation.pptxChapter15-Presentation.pptx
Chapter15-Presentation.pptxGFRomano
 
Testing in Craft CMS
Testing in Craft CMSTesting in Craft CMS
Testing in Craft CMSJustinHolt20
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)guestebde
 
Develop Maintainable Apps - edUiConf
Develop Maintainable Apps - edUiConfDevelop Maintainable Apps - edUiConf
Develop Maintainable Apps - edUiConfAnnyce Davis
 
Assessing Unit Test Quality
Assessing Unit Test QualityAssessing Unit Test Quality
Assessing Unit Test Qualityguest268ee8
 
Research: Developing an Interactive Web Information Retrieval and Visualizati...
Research: Developing an Interactive Web Information Retrieval and Visualizati...Research: Developing an Interactive Web Information Retrieval and Visualizati...
Research: Developing an Interactive Web Information Retrieval and Visualizati...Roman Atachiants
 
Search and navigation in Visual Studio
Search and navigation in Visual StudioSearch and navigation in Visual Studio
Search and navigation in Visual StudioDavid Shepherd
 
Writing Android Libraries
Writing Android LibrariesWriting Android Libraries
Writing Android Librariesemanuelez
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller ColumnsJonathan Fine
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with SeleniumDave Haeffner
 
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...IEEEFINALYEARSTUDENTPROJECT
 
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...IEEEMEMTECHSTUDENTSPROJECTS
 
IEEE 2014 JAVA DATA MINING PROJECTS Mining weakly labeled web facial images f...
IEEE 2014 JAVA DATA MINING PROJECTS Mining weakly labeled web facial images f...IEEE 2014 JAVA DATA MINING PROJECTS Mining weakly labeled web facial images f...
IEEE 2014 JAVA DATA MINING PROJECTS Mining weakly labeled web facial images f...IEEEFINALYEARSTUDENTPROJECTS
 
Web crawler with email extractor and image extractor
Web crawler with email extractor and image extractorWeb crawler with email extractor and image extractor
Web crawler with email extractor and image extractorAbhinav Gupta
 

Similar to J query aosddemo_2004 (20)

Selenium and JMeter Testing
Selenium and JMeter TestingSelenium and JMeter Testing
Selenium and JMeter Testing
 
Selenium and JMeter
Selenium and JMeterSelenium and JMeter
Selenium and JMeter
 
Selenium.pptx
Selenium.pptxSelenium.pptx
Selenium.pptx
 
Browser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsBrowser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.js
 
Chapter15-Presentation.pptx
Chapter15-Presentation.pptxChapter15-Presentation.pptx
Chapter15-Presentation.pptx
 
Testing in Craft CMS
Testing in Craft CMSTesting in Craft CMS
Testing in Craft CMS
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
Develop Maintainable Apps - edUiConf
Develop Maintainable Apps - edUiConfDevelop Maintainable Apps - edUiConf
Develop Maintainable Apps - edUiConf
 
Assessing Unit Test Quality
Assessing Unit Test QualityAssessing Unit Test Quality
Assessing Unit Test Quality
 
Research: Developing an Interactive Web Information Retrieval and Visualizati...
Research: Developing an Interactive Web Information Retrieval and Visualizati...Research: Developing an Interactive Web Information Retrieval and Visualizati...
Research: Developing an Interactive Web Information Retrieval and Visualizati...
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
Search and navigation in Visual Studio
Search and navigation in Visual StudioSearch and navigation in Visual Studio
Search and navigation in Visual Studio
 
Writing Android Libraries
Writing Android LibrariesWriting Android Libraries
Writing Android Libraries
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller Columns
 
Petri for kyiv.pptx
Petri for kyiv.pptxPetri for kyiv.pptx
Petri for kyiv.pptx
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with Selenium
 
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
 
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
 
IEEE 2014 JAVA DATA MINING PROJECTS Mining weakly labeled web facial images f...
IEEE 2014 JAVA DATA MINING PROJECTS Mining weakly labeled web facial images f...IEEE 2014 JAVA DATA MINING PROJECTS Mining weakly labeled web facial images f...
IEEE 2014 JAVA DATA MINING PROJECTS Mining weakly labeled web facial images f...
 
Web crawler with email extractor and image extractor
Web crawler with email extractor and image extractorWeb crawler with email extractor and image extractor
Web crawler with email extractor and image extractor
 

Recently uploaded

How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxDr. Ravikiran H M Gowda
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxannathomasp01
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfDr Vijay Vishwakarma
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
latest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answerslatest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answersdalebeck957
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 

Recently uploaded (20)

How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
latest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answerslatest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answers
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 

J query aosddemo_2004

  • 1. Software Practices Lab. -- The University of British Columbia 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. Software Practices Lab. -- The University of British Columbia 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…
  • 3. Software Practices Lab. -- The University of British Columbia 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
  • 4. Software Practices Lab. -- The University of British Columbia 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
  • 5. Software Practices Lab. -- The University of British Columbia JQuery: How it works Abstract Class Browser Both views in same window Package Browser Bundled with many more browsers
  • 6. Software Practices Lab. -- The University of British Columbia JQuery: How it works Incrementally perform the exploration by extending each view with a sub-view 1. Select extension point
  • 7. Software Practices Lab. -- The University of British Columbia JQuery: How it works Incrementally perform the exploration by extending views with a new extensions 1. Select extension point 2. Choose sub- query
  • 8. Software Practices Lab. -- The University of British Columbia 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
  • 9. Software Practices Lab. -- The University of British Columbia JQuery: How it works Filtering by regular expression Search for “Figure”: • Open query dialog • double-click
  • 10. Software Practices Lab. -- The University of British Columbia JQuery: How it works Filtering by regular expression Search for “Figure”: • Open query dialog • Edit query
  • 11. Software Practices Lab. -- The University of British Columbia JQuery: How it works Filtering by regular expression Search for “Figure”: • Open query dialog • Edit query • Close dialogue (query automatically re- executes)
  • 12. Software Practices Lab. -- The University of British Columbia JQuery: How it works Filtering by regular expression Browser is now filtered by “Figure” Can customize queries in many other ways too.
  • 13. Software Practices Lab. -- The University of British Columbia 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:
  • 14. Software Practices Lab. -- The University of British Columbia JQuery: The Plan Rectangle Text ?????? Frame No Frame Menu Change Pen Color
  • 15. Software Practices Lab. -- The University of British Columbia JQuery: Executing the Plan Menu Change Pen Color Rectangle Text Frame No Frame Change Attribute Command Found by regex search for *Attribute* ?????? ?????? Step 1: Find menu creation Step 2: Find relationship to frames
  • 16. Software Practices Lab. -- The University of British Columbia JQuery: Executing the Plan Change Attribute Command Rectangle ?????? Text Frame No Frame Determined that Pen Color sets Menu FrameColor Attribute execute creates Draw Application createColorMenu calls createAttrMenu
  • 17. Software Practices Lab. -- The University of British Columbia Attribute Figure setAttr implemented by JQuery: Executing the Plan Change Attribute Command Draw Application Rectangle Text Frame No Frame sidetrack to explore FigureAttributes getAttr execute Figure setAttr callscreateAttrMenu drawFr dataflow createColorMenu creates calls Determined that Pen Color sets FrameColor Attribute
  • 18. Software Practices Lab. -- The University of British Columbia JQuery: Executing the Plan Change Attribute Command Rectangle Figure Text Figure change this method Figure Attribute Figure getAttr drawFr setAttr 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
  • 19. Software Practices Lab. -- The University of British Columbia 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
  • 20. Software Practices Lab. -- The University of British Columbia 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!
  • 21. Software Practices Lab. -- The University of British Columbia JQuery: De-tangling searching Why use 4 browsers when you can use 1?
  • 22. Software Practices Lab. -- The University of British Columbia Questions? Google: Download JQuery (new release out soon): Prevents tangled and scattered searches Reduces disorientation of complex exploration Maintains context Andrew Eisenberg: ade@cs.ubc.ca

Editor's Notes

  1. Good morning JQuery---plugin for eclipse integrated code browser
  2. Particularly cross-cutting
  3. If this looks ugly, well that shouldn’t be surprising. Even relatively simple change tasks involve exploring many different links and relationships between code artifacts. Performing such a task using standard IDE browsers exemplifies this explosion of browser problem I mentioned earlier. No way of remembering which tasks have already been completed and why.
  4. If this looks ugly, well that shouldn’t be surprising. Even relatively simple change tasks involve exploring many different links and relationships between code artifacts. Performing such a task using standard IDE browsers exemplifies this explosion of browser problem I mentioned earlier. No way of remembering which tasks have already been completed and why.
  5. If this looks ugly, well that shouldn’t be surprising. Even relatively simple change tasks involve exploring many different links and relationships between code artifacts. Performing such a task using standard IDE browsers exemplifies this explosion of browser problem I mentioned earlier. No way of remembering which tasks have already been completed and why.
  6. Particularly cross-cutting
  7. If this looks ugly, well that shouldn’t be surprising. Even relatively simple change tasks involve exploring many different links and relationships between code artifacts. Performing such a task using standard IDE browsers exemplifies this explosion of browser problem I mentioned earlier. No way of remembering which tasks have already been completed and why.
  8. If this looks ugly, well that shouldn’t be surprising. Even relatively simple change tasks involve exploring many different links and relationships between code artifacts. Performing such a task using standard IDE browsers exemplifies this explosion of browser problem I mentioned earlier. No way of remembering which tasks have already been completed and why.