Title: A Review of Software Design Visualization
1A Review of Software Design Visualization
- Thomas LaToza
- SSSG Seminar
- 11/18/2004
2You are here
Related problems
Constraints
Bugs
Reuse
Design decisions
Crosscutting
Context
Search
Software design visualization
Related approaches
Plan recognition
Smell detectors
Aspect oriented programming
Question answering
Program understanding
Concept assignment
Clone detection
Hypothesis testing
Revere engineering
3Overview
- Overview of a number of recent software
visualization tools - Tree visualizations
- Line visualizations
- Boxes and lines visualizations
- Grid visualizations
- Picture visualizations
- Subjective comparison and conclusions
- Whats missing
4- Tree
- FEAT (Robillard Murphy, 2003)
- JQuery (Eisenberg De Volder, 2004)
- Design Snippets (Sazawal Notkin, in submission)
- Line
- SeeSoft (Eick, Ball)
- Aspect Browser (Griswold, Yuan, Kato, 2001)
- Aspect Mining Tool (Hannemann Kiczales, 2001)
- Tarantula (Jones, Harrold, Stasko, 2002)
- Concern Modeling Environment (Tarr, Harrison,
Ossher, 2004) - Boxes and lines
- UML Class Diagram
- Components Connectors Acme (Schmerl Garlan,
2004) - Reflexion Model jRMTool (Murphy, Notkin,
Sullivan, 1995) - Dr. Jones (Foltz, 2003)
- Software Factories UML, Components Connectors
(Greenfield Short, 2004) - Data flow diagrams, UML sequence diagrams,
- Graph
- Star Diagram (Hayes, Griswold, Moskovics, 1999)
Citations of the most recent paper about each
visualization
Green Will cover
5General Thoughts
- Visualization tool is
- Selection of information and relationships to
display - E.g. Superclass, modified by developer, LOC
- Assignment of information and relationships to a
visual representation - Configurability
- What information displayed together
- How many LOC can you run it on
- Supports particular software design task deemed
important - Components connectors protocols
- Snippets factoring decisions
- SeeSoft understanding global implications
6Some representative tasks
- If I change this location in the code, how will
that crosscutting concern be affected?
(Baniassad et al, 2002) (crosscutting search) - How should I decompose this feature? (forward
engineering)
7Tree Visualizations
8Feature Exploration Analysis Tool
Downloadable for Eclipse
9- Use cases
- Search for scattered info
- How is this data structure used?
- Where is this menu created?
- What are all the methods involved in IO
operations on this buffer? - View concerns
- Describe concern with elements and relationships
from elements
10Projection View Traverse relationships
between elements to find elements
Relative to class, interface All
members transitive, not transitiveSuper,
subclass, interface Constructor calls Relative
to field Type Accessed by Relative to
method Constructs, parameter, return
types Field accesses Call Override Using (fields,
call, constructs)
Relationships
11JQuery
Downloadable for Eclipse
12JQuery
- Relationships same as FEAT plus
- Throws
- Same signature
- Compiler warnings / errors
- Bookmarks
- Tasks
- Use case
- Search for crosscutting impact across
relationships on the results of a query - Empirical validation
13Design Snippets
Downloadable for Eclipse
Use case Finding information hiding violations
Interface Public methods, fields Superclasses /
superinterfaces Implementation Private methods,
fields Secret types not externally visible
14Type Relationships Implements Extends Creates Has
paramater Return value Uses field Casts to
Use case Reasoning about coupling
15Defacto interface Set of members used by a client
Use case Consideration of removing a dependency
16Line Visualizations
17SeeSoft
Color Code age - green old
18Color Blue old, red - new
Use case Bug fixing vs. new development
19Use case - coverage
Color program execution count
20Use case program slicing
21Tarantula
Color code coverage Red failed test
case Green past test case Yellow hue is of
test cases passing
Use case Fault localization
22AspectBrowser
Downloadable for Eclipse
Use case code navigation
Color - aspect
23Concern Manipulation Environment
Downloadable for Eclipse
24Boxes and Lines Visualizations
25UML Class Diagram
Relationships Members of a class Superclass /
subclass Composition
Use cases Forward engineering Reverse engineering
26Reflexion Model - jRMTool
Downloadable for Eclipse
High level model specified first by developer
Reflexion model dependencies found by
tool Solid convergence, dashed divergence,
dotted absence Use case separate
modules Describe architecture (dependencies),
iteratively change architecture / code
till agreement
27Components Connectors (Acme)
Downloadable for Eclipse
Relationships - protocols describing component
composition
Use case - forward engineering decomposition and
architectural analysis
28Graph Visualizations
29Design Pattern Rational Graph
Use case Understand how code implements a design
pattern to improve performance by depicting
design goals
30Creole
Downloadable for Eclipse
31(No Transcript)
32Grid Visualizations
33Treemap
Linux Kernel (linear scale)
34Hierarchical Call Matrices
Philips Medical Systems, 300 developers 12
architects, 3 million LOC, 25k classes
Grid component contains function call Zoom
level aggregation into components Color green
allowed by architecture red - not
allowed by architecture
To what degree does the current implementation
conform to the architecture specification? Are
there any calls made that are not allowed? Which
subsystems are affected if a subsystem is
changed? Or, in other words, which subsystems
call or are called by the changed subsystem? What
are the changes in the system over time?
35Source Viewer 3D
Use case Profiling?
Visualization of one source file Cylinder line
of code Color function membership Height
execution count
36Picture Visualizations
37FSMView
Downloadable
Right picture IEEE 1394 (25k states)
Relationship Edges transitions Nodes
- states
Use case Understanding a protocol by looking at
shape and symmetry
38Subjective evaluation and comparison
- CME seems to be a black hole for crosscutting
- SeeSoft, Reflexion models, FEAT, JQuery,
AspectBrowser, ) - Mostly reverse engineering
- Other than ACME, UML class diagrams
- But trying to guide design decisions
39Whats missing
- Relationship traversal AND color query results
AND structure - Further annotating Creole style call graph
visualization? - Direct manipulation / refactoring
- What is this member doing here?? Because of
coupling / cohesion / modularity, I want to move
it over there now! - Constraints on a design decision before, not
after - Unit test failures
- Architecture violations
- Bad performance
- Poor reusability
- Hard to read code
- Team ownership
- Rationale behind the constraints
- My decision is overconstrained which constraint
should I change?? - Version control information
- Who made this decision, what were they working
on, what were they thinking??
40Questions?