Top Banner
Software Navigation Thomas Zimmermann Navigation Calgary
98

Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Feb 26, 2019

Download

Documents

lamlien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Software NavigationThomas Zimmermann

Navigatio

n

Calgary

Page 2: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Oral exams

All slides

List of ten papers

Guest lectures

Your course notes

Page 3: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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.

Page 4: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Software navigation

Page 5: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Landmarks

Page 6: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Landmarks

Page 7: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Beacons

Page 8: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Beacons

Page 9: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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?

Page 10: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Waypoints

longitude: 7.045454746632007 latitude: 49.25755151296508

Page 11: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Learning an environment

Landmark knowledge

Route knowledge

Survey knowledge

Page 12: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Route knowledge

Route knowledge allows to navigate from one point to another.

Page 13: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Route knowledge

Route knowledge allows to navigate from one point to another.

Page 14: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Route knowledge

Route knowledge allows to navigate from one point to another.

Navigational actions

Page 15: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Route knowledge

Route knowledge allows to navigate from one point to another.

Navigational actions

Landmarks

Page 16: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Route knowledge

Page 17: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Route knowledge

Page 18: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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.

Page 19: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Elements in cognitive maps

Paths: channels for navigator movementstreet, canal, transit line

Edges: indicate district limitsfence, river

Districts: reference pointsneighborhood

Nodes: focal points for traveltown square, buildings

Landmarks: “special” reference pointsstatue, tower

Page 20: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

What makes a landmark?

Page 21: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

What makes a landmark?

Memorizable

Memory forlocation

Page 22: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

What makes a landmark?

Memorizable

Memory forlocation

Significant height

Complex shape

Large, visible signs

Visible

Page 23: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

What makes a landmark?

Memorizable

Memory forlocation

Significant height

Complex shape

Large, visible signs

Visible

Bright exterior

VisibleExpensive materials

Unique color, texture

Page 24: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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)

Page 25: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Swiss army knife hypothesis

Page 26: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Swiss army knife hypothesis

Common subset of skills is used in each world (codespace + physical world).

Page 27: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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.

Page 28: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Software navigation

Where do I start?

Page 29: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Software navigation

(Self location)

Where am I?

Where do I start?

Page 30: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Software navigation

(Self location)

Where am I?

When’s the next turn?(Where do I have to look/change next?)

Where do I start?

Page 31: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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?

Page 32: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

NavTracks

Keep track of navigation history

to support browsing

Singer et al. (ICSM 2005)

Page 33: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Requirements

Non-disruptive. Should not disrupt nor affect the performance of developers.

Current patterns. Prefer locally available data over historical traces (e.g., version archives).

Approximate but efficient. Like Google, be efficient and accurate most of the time.

Page 34: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Architecture

Page 35: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Architecture

Record events

Page 36: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Architecture

Record events

Filter jitter and duplication

Page 37: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Architecture

Record events

Filter jitter and duplication

Compute associations

Page 38: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Associations(size n=4) (minimum cycle length k=3)

Page 39: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Associations(size n=4) (minimum cycle length k=3)

Page 40: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Associations(size n=4) (minimum cycle length k=3)

Page 41: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Associations(size n=4) (minimum cycle length k=3)

Page 42: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Associations(size n=4) (minimum cycle length k=3)

Page 43: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Associations(size n=4) (minimum cycle length k=3)

Page 44: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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%

Page 45: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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.

Page 46: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Team Tracks

Team Tracks = NavTracks on Teams

Team Tracks is used at Microsoft

DeLine et al. (VL/HCC 2005, SOFTVIS 2005)

Page 47: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Navigation and changes

Page 48: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Navigation and changes

navigated locations

Page 49: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Navigation and changes

navigated locations

interesting

Page 50: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Navigation and changes

navigated locations

interesting

changed locations

Page 51: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Navigation and changes

LoggingNavTracksTeamTracks

time

Page 52: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Navigation and changes

LoggingNavTracksTeamTracks

time

ChangeHistory

eROSE

Order is lost

Page 53: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

TagSea

Storey et al. (CSCW 2006)

Page 54: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

TagSea

TagSea = Waypoints + Social tagging

Page 55: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Suade

Guide developers towards interesting sections of code by analyzing the topology

of a program’s structural dependencies.

Suade addresses the concept assignment problem.

Robillard (ACM Distinguished Paper @ ESEC/FSE 2005)

Page 56: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

The approach

Set of interest

fuzzy set

Page 57: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

The approach

Set of interest

fuzzy set

Suggestion set

fuzzy set

Suade

Page 58: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

The approach

Set of interest

fuzzy set

Suggestion set

fuzzy set

Suade

Structural dependencies

Page 59: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

The approach

Set of interest

fuzzy set

Suggestion set

fuzzy set

Suade

Structural dependencies

Specificity Reinforcement

Page 60: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Specificity

Set of interest

A Bcalls

B has no other calls!

⇒ B is specific to the set of interest

Page 61: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Reinforcement

Set of interest

A BcallsX1

X2

X9X8

...

calls

⇒ B is reinforced

Page 62: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Example for specificity

Distinguish between direct and transpose relations.

Page 63: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Multiple relations

Page 64: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Multiple relations

calls, called by, accesses, accessed by

Page 65: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Multiple relations

calls, called by, accesses, accessed by

Suade uses a special union operator!!!

Page 66: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Analyze relations

Page 67: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Analyze relations

Page 68: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Analyze relations

direct degree

Page 69: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Analyze relations

direct degree

transposed degree

Page 70: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Analyze relations

direct degree

transposed degree

Page 71: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Example

Page 72: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

The Suade plug-in

Set of interest Suggestion set

Page 73: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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.

Page 74: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Case study

File allocation concern of the Azureus system. Set of interest: 4 members of DiskManagerImplSuggestion 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”

Page 75: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Case study

Page 76: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Mylar

Kersten and Murphy (AOSD 2005, FSE 2006)

Provide a task-focussed UI that reduces information overload by monitoring the

work activity of developers.

Page 77: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 78: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

Information OverloadHard to see the forest through the trees.Repetitive scrolling, searching, navigating

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 79: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 80: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

MylarSee 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)

Page 81: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 82: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 83: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 84: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 85: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 86: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 87: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 88: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 89: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 90: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 91: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 92: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 93: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 94: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 95: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 96: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

taken from Mylar: a Task Focused UI for Eclipse (EclipseCon talk, Mar 2006)

Page 97: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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)

Page 98: Software Navigation - Universität des Saarlandes · Route knowledge Route knowledge allows to navigate from one point to another. Route knowledge Route knowledge allows to navigate

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