SLIDE 1 Software Navigation
Thomas Zimmermann
Navigation
Calgary
SLIDE 2
Oral exams
All slides List of ten papers Guest lectures Your course notes
SLIDE 3
Concept assignment problem
Identify how high-level concepts are implemented in source code.
For software modification: understand the concepts that are associated to the task.
SLIDE 4
Software navigation
SLIDE 5
Landmarks
SLIDE 6
Landmarks
SLIDE 7
Beacons
SLIDE 8
Beacons
SLIDE 9 Landsmarks and beacons
public static void bubbleSort(int[] array) { for (int i = array.length - 1; i > 0; i--) { for (int j = 0; j < i; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } }
What would be a landmark and what would be a beacon?
SLIDE 10
Waypoints
longitude: 7.045454746632007 latitude: 49.25755151296508
SLIDE 11
Learning an environment
Landmark knowledge Route knowledge Survey knowledge
SLIDE 12
Route knowledge
Route knowledge allows to navigate from one point to another.
SLIDE 13
Route knowledge
Route knowledge allows to navigate from one point to another.
SLIDE 14
Route knowledge
Route knowledge allows to navigate from one point to another.
Navigational actions
SLIDE 15
Route knowledge
Route knowledge allows to navigate from one point to another.
Navigational actions Landmarks
SLIDE 16
Route knowledge
SLIDE 17
Route knowledge
SLIDE 18
Survey knowledge
Survey knowledge is analogous to a map. except that it allows the navigator to adopt the most convenient perspective.
Spatial properties, but distortions can occur.
SLIDE 19 Elements in cognitive maps
Paths: channels for navigator movement
street, canal, transit line
Edges: indicate district limits
fence, river
Districts: reference points
neighborhood
Nodes: focal points for travel
town square, buildings
Landmarks: “special” reference points
statue, tower
SLIDE 20
What makes a landmark?
SLIDE 21
What makes a landmark?
Memorizable Memory for location
SLIDE 22
What makes a landmark?
Memorizable Memory for location
Significant height Complex shape Large, visible signs Visible
SLIDE 23
What makes a landmark?
Memorizable Memory for location
Significant height Complex shape Large, visible signs Visible Bright exterior Visible Expensive materials Unique color, texture
SLIDE 24
Navigation in codespace
Many similarities to physical world: Manifestation (can be viewed and manipulated) Identifiable constructs (objects) Various levels of abstraction (hierarchies) Direction Distance (transit technqiues)
SLIDE 25
Swiss army knife hypothesis
SLIDE 26
Swiss army knife hypothesis
Common subset of skills is used in each world (codespace + physical world).
SLIDE 27
Swiss army knife hypothesis
Common subset of skills is used in each world (codespace + physical world). This subset is augmented and modified to deal with the unique aspects.
SLIDE 28
Software navigation
Where do I start?
SLIDE 29 Software navigation
(Self location)
Where am I? Where do I start?
SLIDE 30 Software navigation
(Self location)
Where am I?
When’s the next turn?
(Where do I have to look/change next?)
Where do I start?
SLIDE 31 Software navigation
(Self location)
Where am I?
When’s the next turn?
(Where do I have to look/change next?)
Have I reached?
(Have I completed my task?)
Where do I start?
SLIDE 32 NavTracks
Keep track of navigation history to support browsing
Singer et al. (ICSM 2005)
SLIDE 33 Requirements
Non-disruptive. Should not disrupt nor affect the performance of developers. Current patterns. Prefer locally available data
- ver historical traces (e.g., version archives).
Approximate but efficient. Like Google, be efficient and accurate most of the time.
SLIDE 34
Architecture
SLIDE 35
Architecture
Record events
SLIDE 36
Architecture
Record events Filter jitter and duplication
SLIDE 37
Architecture
Record events Filter jitter and duplication Compute associations
SLIDE 38 Associations
(size n=4) (minimum cycle length k=3)
SLIDE 39 Associations
(size n=4) (minimum cycle length k=3)
SLIDE 40 Associations
(size n=4) (minimum cycle length k=3)
SLIDE 41 Associations
(size n=4) (minimum cycle length k=3)
SLIDE 42 Associations
(size n=4) (minimum cycle length k=3)
SLIDE 43 Associations
(size n=4) (minimum cycle length k=3)
SLIDE 44 Continuous evaluation
Continuous evaluation and training process on the events of three developers: 36%, 35%, 16%
Event Class D3 D1 D2 Average 2-6 occurrences 25% 23% 17% 22% 7-11 occurrences 52% 50% 32% 45% 11-16 occurrences 46% 51% 31% 43% 12-21 occurrences 60% 31% 45% > 21 occurrences 43% 43% 43%
SLIDE 45
User study
Experiences and feedback from 5 developers. Newcomer & New system development use. Tool provides a memory aid for related files. Wanderer use. Tool did not help for refactoring (repetitive copy, paste, and modify cycle). Navigation use. Tool supported contextually different navigation paths.
SLIDE 46 Team Tracks
Team Tracks = NavTracks on Teams
Team Tracks is used at Microsoft
DeLine et al. (VL/HCC 2005, SOFTVIS 2005)
SLIDE 47
Navigation and changes
SLIDE 48
Navigation and changes
navigated locations
SLIDE 49
Navigation and changes
navigated locations interesting
SLIDE 50
Navigation and changes
navigated locations interesting changed locations
SLIDE 51 Navigation and changes
Logging NavTracks TeamTracks
time
SLIDE 52 Navigation and changes
Logging NavTracks TeamTracks
time
Change History eROSE Order is lost
SLIDE 53 TagSea
Storey et al. (CSCW 2006)
SLIDE 54
TagSea
TagSea = Waypoints + Social tagging
SLIDE 55 Suade
Guide developers towards interesting sections of code by analyzing the topology
- f a program’s structural dependencies.
Suade addresses the concept assignment problem.
Robillard (ACM Distinguished Paper @ ESEC/FSE 2005)
SLIDE 56 The approach
Set of interest
fuzzy set
SLIDE 57 The approach
Set of interest
fuzzy set
Suggestion set
fuzzy set
Suade
SLIDE 58 The approach
Set of interest
fuzzy set
Suggestion set
fuzzy set
Suade
Structural dependencies
SLIDE 59 The approach
Set of interest
fuzzy set
Suggestion set
fuzzy set
Suade
Structural dependencies
Specificity Reinforcement
SLIDE 60 Specificity
Set of interest
A B
calls B has no other calls! ⇒ B is specific to the set of interest
SLIDE 61 Reinforcement
Set of interest
A B
calls
X1 X2 X9 X8 ...
calls ⇒ B is reinforced
SLIDE 62
Example for specificity
Distinguish between direct and transpose relations.
SLIDE 63
Multiple relations
SLIDE 64 Multiple relations
calls, called by, accesses, accessed by
SLIDE 65 Multiple relations
calls, called by, accesses, accessed by
Suade uses a special union operator!!!
SLIDE 66
Analyze relations
SLIDE 67
Analyze relations
SLIDE 68 Analyze relations
direct degree
SLIDE 69 Analyze relations
direct degree transposed degree
SLIDE 70 Analyze relations
direct degree transposed degree
SLIDE 71
Example
SLIDE 72 The Suade plug-in
Set of interest Suggestion set
SLIDE 73
Quantitative evaluation
Size of suggestion sets. On average 4.8 suggestions for a singleton set. Largest set contained 86 elements. Parameterization of the algorithm. Most useful values of α for 0.1< α <0.7. Degree should be viewed as relative measure.
SLIDE 74
Case study
File allocation concern of the Azureus system. Set of interest: 4 members of DiskManagerImpl Suggestion set: additional 54 elements Evaluation by two experts (working as a team). Is this element relevant to understand how files are allocated? ⇒ “Yes”, “No”, and “Somewhat”
SLIDE 75
Case study
SLIDE 76 Mylar
Kersten and Murphy (AOSD 2005, FSE 2006)
Provide a task-focussed UI that reduces information overload by monitoring the work activity of developers.
SLIDE 77 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 78 Information Overload
Hard to see the forest through the trees. Repetitive scrolling, searching, navigating
taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 79 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 80 Mylar
See only what you’re working on.
Aluminized film used to avoid blindness when staring at an eclipse. Task Focused UI to avoid information blindness when staring at Eclipse. taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 81 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 82 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 83 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 84 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 85 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 86 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 87 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 88 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 89 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 90 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 91 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 92 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 93 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 94 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 95 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 96 taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)
SLIDE 97
Summary
Landmarks, beacons, and waypoints Route knowledge vs. survey knowledge Support software navigation by using – past navigation traces (NavTracks) – structural dependencies (Suade) Task-focus reduces information overload (Mylar)
SLIDE 98 Literature
Design guidelines for landmarks to support navigation in virtual environments. Norman Vinson. Theoretical considerations on navigating codespace with spatial cognition . Anthony Cox, Maryanne Fisher, and Philip O'Brien. NavTracks: Supporting Navigation in Software Maintenance. Janice Singer, Robert Elves, and Margaret-Anne D. Storey. Automatic generation of suggestions for program investigation. Martin P . Robillard Using task context to improve programmer productivity. Mik Kersten, Gail C. Murphy