A Review of Software Design Visualization - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

A Review of Software Design Visualization

Description:

Aspect Browser (Griswold, Yuan, & Kato, 2001) Aspect Mining Tool (Hannemann & Kiczales, 2001) ... Jive (Reiss, 2003) Multilevel Call Matrices (van Ham, 2003) ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 41
Provided by: scie5
Category:

less

Transcript and Presenter's Notes

Title: A Review of Software Design Visualization


1
A Review of Software Design Visualization
  • Thomas LaToza
  • SSSG Seminar
  • 11/18/2004

2
You 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
3
Overview
  • 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
5
General 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

6
Some 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)

7
Tree Visualizations
8
Feature 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

10
Projection 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
11
JQuery
Downloadable for Eclipse
12
JQuery
  • 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

13
Design 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
14
Type Relationships Implements Extends Creates Has
paramater Return value Uses field Casts to
Use case Reasoning about coupling
15
Defacto interface Set of members used by a client
Use case Consideration of removing a dependency
16
Line Visualizations
17
SeeSoft
Color Code age - green old
18
Color Blue old, red - new
Use case Bug fixing vs. new development
19
Use case - coverage
Color program execution count
20
Use case program slicing
21
Tarantula
Color code coverage Red failed test
case Green past test case Yellow hue is of
test cases passing
Use case Fault localization
22
AspectBrowser
Downloadable for Eclipse
Use case code navigation
Color - aspect
23
Concern Manipulation Environment
Downloadable for Eclipse
24
Boxes and Lines Visualizations
25
UML Class Diagram
Relationships Members of a class Superclass /
subclass Composition
Use cases Forward engineering Reverse engineering
26
Reflexion 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
27
Components Connectors (Acme)
Downloadable for Eclipse
Relationships - protocols describing component
composition
Use case - forward engineering decomposition and
architectural analysis
28
Graph Visualizations
29
Design Pattern Rational Graph
Use case Understand how code implements a design
pattern to improve performance by depicting
design goals
30
Creole
Downloadable for Eclipse
31
(No Transcript)
32
Grid Visualizations
33
Treemap
Linux Kernel (linear scale)
34
Hierarchical 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?
35
Source Viewer 3D
Use case Profiling?
Visualization of one source file Cylinder line
of code Color function membership Height
execution count
36
Picture Visualizations
37
FSMView
Downloadable
Right picture IEEE 1394 (25k states)
Relationship Edges transitions Nodes
- states
Use case Understanding a protocol by looking at
shape and symmetry
38
Subjective 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

39
Whats 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??

40
Questions?
Write a Comment
User Comments (0)
About PowerShow.com