Dr. Jones:
A Software Archaeologist’s
Magic Lens
Mark
A. Foltz
November 15, 2001
The Problem
|
|
|
Program comprehension is time consuming
and cognitively taxing. |
|
|
|
Documentation is scarce and
out-of-date. |
|
|
|
Source code browsing environments are
inadequate. |
|
|
Outline
|
|
|
|
|
User Studies and Results |
|
|
|
Supporting Navigation and Capturing Abstractions |
|
|
|
Situating Dr. Jones |
|
|
User Studies of Java
Browsing
|
|
|
Observe software browsing behavior. |
|
|
|
Collect browsing strategies and
rationale. |
|
|
|
Collect frustrations with and wishes
for browsing tools. |
User Studies: Subjects
|
|
|
12 sessions, 12 subjects, 2
programs/session |
|
Computer science graduate students |
|
3 months to 5 years of Java experience |
|
Longest program worked on: 6 classes to 100K+ LoC |
|
480 minutes of browsing behavior |
User Studies: Methods
|
|
|
Subjects given an unfamiliar program
organized as hypertext [Demo] |
|
Subject prompted while browsing to
capture rationale |
|
Maintenance tasks |
|
End-of-session interviews |
User Studies: Conditions
User Studies: Strategies
|
|
|
Name Guessing (10) |
|
Starting from main() (9) |
|
Critical-Method (5) |
|
Sequential (4) |
|
Top-Down (3) |
|
Bottom-Up (2) |
|
Tracing (2) |
User Studies: Results
|
|
|
Dependency information (3) |
|
Keyword searching (2) |
|
Dead/abstract code elimination (2) |
|
Diagramming (2) |
User Studies: Take-Away
|
|
|
|
Consistent browsing strategies |
|
In terms of program structure and
behavior |
|
Can assist user navigation in the
program |
|
|
|
Names are crucial |
|
Guide programmer’s choices across
strategies |
|
Would renaming be useful? |
Outline
|
|
|
|
|
User Studies and Results |
|
|
|
Supporting Navigation and Capturing Abstractions |
|
|
|
Situating Dr. Jones |
|
|
Dr. Jones: Supporting
Navigation
|
|
|
|
Goal: Rapidly prototype software browsers |
|
Build a graph of the program text (a TextGraph) |
|
Nodes contain source and comments. |
|
Add edges to the TextGraph from program dependencies |
|
Support navigation by creating a walkthrough |
Dr. Jones: Supporting
Navigation
Dr. Jones: Capturing
Abstractions
Slide 15
Slide 16
Slide 17
Outline
|
|
|
|
|
User Studies and Results |
|
|
|
Supporting Navigation and Capturing Abstractions |
|
|
|
Situating Dr. Jones |
|
|
Software Design
Reverse Engineering
Model-Based Reverse
Engineering
Dr. Jones: Closing the
Loop
Dr. Jones: Closing the
Loop
How to look at software?
Dr. Jones: Contributions
and Challenges
|
|
|
A set of heuristics that create
effective walkthroughs. |
|
Multimodal annotation of software
diagrams. |
|
TextGraph: Program representation
grounded in the raw source, integrating programmer and automatic annotations. |
|
|
Points for Discussion
|
|
|
Visualizing software evolution |
|
Round-trip engineering |
|
Extreme and/or Pair Programming |
|
Other languages |
|
Invariant extraction (Daikon) |
|
Grungers vs. Architects |
|
What are useful views of a program? |