Software Navigation Thomas Zimmermann Calgary Navigation Oral - - PowerPoint PPT Presentation

software navigation
SMART_READER_LITE
LIVE PREVIEW

Software Navigation Thomas Zimmermann Calgary Navigation Oral - - PowerPoint PPT Presentation

Software Navigation Thomas Zimmermann Calgary Navigation Oral exams All slides List of ten papers Guest lectures Your course notes Concept assignment problem Identify how high-level concepts are implemented in source code. For software


slide-1
SLIDE 1

Software Navigation

Thomas Zimmermann

Navigation

Calgary

slide-2
SLIDE 2

Oral exams

All slides List of ten papers Guest lectures Your course notes

slide-3
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
SLIDE 4

Software navigation

slide-5
SLIDE 5

Landmarks

slide-6
SLIDE 6

Landmarks

slide-7
SLIDE 7

Beacons

slide-8
SLIDE 8

Beacons

slide-9
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
SLIDE 10

Waypoints

longitude: 7.045454746632007 latitude: 49.25755151296508

slide-11
SLIDE 11

Learning an environment

Landmark knowledge Route knowledge Survey knowledge

slide-12
SLIDE 12

Route knowledge

Route knowledge allows to navigate from one point to another.

slide-13
SLIDE 13

Route knowledge

Route knowledge allows to navigate from one point to another.

slide-14
SLIDE 14

Route knowledge

Route knowledge allows to navigate from one point to another.

Navigational actions

slide-15
SLIDE 15

Route knowledge

Route knowledge allows to navigate from one point to another.

Navigational actions Landmarks

slide-16
SLIDE 16

Route knowledge

slide-17
SLIDE 17

Route knowledge

slide-18
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
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
SLIDE 20

What makes a landmark?

slide-21
SLIDE 21

What makes a landmark?

Memorizable Memory for location

slide-22
SLIDE 22

What makes a landmark?

Memorizable Memory for location

Significant height Complex shape Large, visible signs Visible

slide-23
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
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
SLIDE 25

Swiss army knife hypothesis

slide-26
SLIDE 26

Swiss army knife hypothesis

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

slide-27
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
SLIDE 28

Software navigation

Where do I start?

slide-29
SLIDE 29

Software navigation

(Self location)

Where am I? Where do I start?

slide-30
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
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
SLIDE 32

NavTracks

Keep track of navigation history to support browsing

Singer et al. (ICSM 2005)

slide-33
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
SLIDE 34

Architecture

slide-35
SLIDE 35

Architecture

Record events

slide-36
SLIDE 36

Architecture

Record events Filter jitter and duplication

slide-37
SLIDE 37

Architecture

Record events Filter jitter and duplication Compute associations

slide-38
SLIDE 38

Associations

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

slide-39
SLIDE 39

Associations

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

slide-40
SLIDE 40

Associations

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

slide-41
SLIDE 41

Associations

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

slide-42
SLIDE 42

Associations

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

slide-43
SLIDE 43

Associations

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

slide-44
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
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
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
SLIDE 47

Navigation and changes

slide-48
SLIDE 48

Navigation and changes

navigated locations

slide-49
SLIDE 49

Navigation and changes

navigated locations interesting

slide-50
SLIDE 50

Navigation and changes

navigated locations interesting changed locations

slide-51
SLIDE 51

Navigation and changes

Logging NavTracks TeamTracks

time

slide-52
SLIDE 52

Navigation and changes

Logging NavTracks TeamTracks

time

Change History eROSE Order is lost

slide-53
SLIDE 53

TagSea

Storey et al. (CSCW 2006)

slide-54
SLIDE 54

TagSea

TagSea = Waypoints + Social tagging

slide-55
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
SLIDE 56

The approach

Set of interest

fuzzy set

slide-57
SLIDE 57

The approach

Set of interest

fuzzy set

Suggestion set

fuzzy set

Suade

slide-58
SLIDE 58

The approach

Set of interest

fuzzy set

Suggestion set

fuzzy set

Suade

Structural dependencies

slide-59
SLIDE 59

The approach

Set of interest

fuzzy set

Suggestion set

fuzzy set

Suade

Structural dependencies

Specificity Reinforcement

slide-60
SLIDE 60

Specificity

Set of interest

A B

calls B has no other calls! ⇒ B is specific to the set of interest

slide-61
SLIDE 61

Reinforcement

Set of interest

A B

calls

X1 X2 X9 X8 ...

calls ⇒ B is reinforced

slide-62
SLIDE 62

Example for specificity

Distinguish between direct and transpose relations.

slide-63
SLIDE 63

Multiple relations

slide-64
SLIDE 64

Multiple relations

calls, called by, accesses, accessed by

slide-65
SLIDE 65

Multiple relations

calls, called by, accesses, accessed by

Suade uses a special union operator!!!

slide-66
SLIDE 66

Analyze relations

slide-67
SLIDE 67

Analyze relations

slide-68
SLIDE 68

Analyze relations

direct degree

slide-69
SLIDE 69

Analyze relations

direct degree transposed degree

slide-70
SLIDE 70

Analyze relations

direct degree transposed degree

slide-71
SLIDE 71

Example

slide-72
SLIDE 72

The Suade plug-in

Set of interest Suggestion set

slide-73
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
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
SLIDE 75

Case study

slide-76
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
SLIDE 77

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

slide-78
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
SLIDE 79

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

slide-80
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
SLIDE 81

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

slide-82
SLIDE 82

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

slide-83
SLIDE 83

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

slide-84
SLIDE 84

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

slide-85
SLIDE 85

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

slide-86
SLIDE 86

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

slide-87
SLIDE 87

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

slide-88
SLIDE 88

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

slide-89
SLIDE 89

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

slide-90
SLIDE 90

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

slide-91
SLIDE 91

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

slide-92
SLIDE 92

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

slide-93
SLIDE 93

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

slide-94
SLIDE 94

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

slide-95
SLIDE 95

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

slide-96
SLIDE 96

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

slide-97
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
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