Title: Software Visualization John C' Anderson ECS289H Winter '05
1Software VisualizationJohn C. AndersonECS289H
Winter '05
- A Discussion Of
- Software Visualization in the Large
- Bell and Eick
- Seesoft A Tool For Visualizing Line Oriented
Software Statistics - Eick, Steffen, and Sumner, Jr.
2What to Visualize about Software?
- Common aspects to visualize include
- The structure of the software.
- The code that comprises the software.
- The runtime behavior of the software.
- We can also visualize related information
- Version control differences.
- Quality control statistics.
3Tasks in Software Visualization
- There are many tasks in software visualization
- Provide overview of software system.
- Insight on how parts of a system interact.
- Look at files and the properties of the code.
- Find out when Bob modified files!
- In general, we want to understand the software.
4Visual Representations
- The structure of software lends itself to certain
types of visualization - Line (Seesoft)
- Pixel
- File summary
- Hierarchical
5Line Representation (Seesoft)
- A line in the visualization corresponds to a line
of source code. - The style of the line (color, length, stipple,
etc.) can denote properties about a line of code. - Easy to display certain aspects of code
- Commented vs. non-commented regions.
- Indention level.
- Last modified date.
6Pixel Representation
- Lines of source code correspond to a small number
of color-coded pixels. - The size of a pixel representation corresponds to
the file size. - Patterns are visible even though individual lines
can be hard to distinguish.
7File Summary Representation
- Represent a file as a rectangle.
- The style of the rectangle, and its label,
describe the file. - TreeMap algorithm can be used to compactly draw
many different files.
8Hierarchical Representation
- Visually convey the hierarchical nature of some
software packages - Subdirectories
- Subsystems/Components
- It is possible to tie a hierarchical
representation to a line, pixel, or file summary
representation to allow for more navigation.
9Examples
- In order to understand these representations, we
should look at a few examples
10Line Representation (Seesoft)Text File Summary
11Line Representation (Seesoft)Software Modularity
- Logging code within org.apache.tomcat
- Red shows lines of code that perform logging.
- Not centralized difficult to maintain/understand.
- Better would be a few files of mostly red.
12Line RepresentationDifferences
13Line Representationvs.Pixel Representation
14File Summary Representation
a) Boxes represent files, chart represents line
age. Red is newer, blue older.
b) Bug fixes vs. new feature development. Red is
bug, blue is new.
15Hierarchical RepresentationDifferences