1. Software Evolution Visualization
Status, Challenges, and Possible Research Directions
Prof. Manoel Mendonça
http://fpc.dcc.ufba.br http://les.dcc.ufba.br
+55 (71) 3283-6311 manoel.mendonca@ufba.br
2. Outline
Introduction
Information and Software Visualization
Software Evolution Visualization (SEV)
A Critical View of the Area
SEV@UFBA
Conclusion
2
3. Outline
Introduction
Information and Software Visualization
Software Evolution Visualization (SEV)
A Critical View of the Area
SEV@UFBA
Conclusion
3
4. Software Visualization (SoftVis)
It is the use of visual paradigms (visual resources
– animation and graphical design) to facilitate the
comprehension and effective use of software.
Price, Baecker and Small, “An Introduction to Software
Visualization”
4
5. Software is Abstract
Software is inherently:
“invisible”
intangible
has no physical format
5
6. Representing Software
Software can be represented in many ways
The most common way is the textual format, especially
its source code
6
8. Representing Software
Can visualization techniques be used to represent
software?
Yes! It is already being used in some way or another
since the 70’s
8
9. Visualization in a Modern IDEs
pretty printing
hierarchical
structure
iconographic
representation
syntax based
coloring
9
10. Is this Enough?
Not Quite
Size and Complexity have sky rocked
We lack mechanisms to visualize and explore software
in the large
Information Visualization techniques and paradigms can
be used to deal with this issue
10
11. Outline
Introduction
Information and Software Visualization
Software Evolution Visualization (SEV)
A Critical View of the Area
SEV@UFBA
Conclusion
14
13. Information Visualization (InfoVis)
“InfoVis is the study of (interactive) visual representations
of abstract data to reinforce human cognition.”
.
16
14. Visualization is about Perception
Taking the input from our senses (in this case Vision)
and turning it into something that has meaning for us
We “see” (perceive) with our brains!
19
15. A Data Pattern in Tabular Format
Y 0 0.259 0.5 0.707 0.866 0.966 1 0.966 0.866 0.707
X 12 13 14 15 16 17 18 19 20 21
Y 0.5 0.259 0 -0.259 -0.5 -0.707 -0.866 -0.966 -1 -0.966
X 22 23 24 25 26 27 28 29 30 31
Y -0.866 -0.707 -0.5 -0.259 0 .0259 0.5 0.707 0.866 0.966
X 32 33 34 35 36 37 38 39 40 41
Requires Perception and Reasoning
20
16. Same Pattern in Visual Format
1
0,5
0
-0,5
-1
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
Requires only Perception
21
17. InfoVis requires Interaction
Computer-based InfoVis requires human computer
interaction.
There is no InfoVis without good interaction
mechanisms.
26
18. InfoVis Interaction Mantra
Gain a global view, zoom and filter, and then
detail on demand
SHNEIDERMAN, B. The eyes have it: A task by data type taxonomy for
information visualization.
In VL’96: Proceedings of the 1996 IEEE Symposium on Visual
Languages (1996), IEEE CS Press, pp. 336–343.
27
19. Revisiting our SoftVis Definition
SoftVis is the effective mapping of software entities
and its attributes into graphical structures that are
easy explore and understand by software engineers …
to facilitate the comprehension and effective use of
software.
28
20. Effective Mapping (1)
Good visual metaphors
graphical structure matches the nature of the information
use perception efficient representations and visual attributes
Good views (instantiations of metaphors)
intuitive mapping of real attributes into visual attributes
29
21. Effective Mapping (2)
Due to its complexity software cannot be described by
just one view
Multiple views are need to assemble an analysis
perspective
These views must be consistent and integrated among
themselves and with the rest of the IDE
30
22. Effective Mapping in Modern IDEs
Multiple views assemble
an analysis perspective
Multiple visual
Metaphors
Syntax-based
coloring
Visual attribute
=> Real attribute
All is integrated !
31
23. Easy to Explore and Undertsnad
The goal is to facilitate the comprehension of the software
(the graphics is a means to an end).
We need good interaction mechanisms
Easy to use widgets and interaction controls
We need a comprehensive data exploration functionality
to support Shneiderman’s mantra
32
25. Easy to Explore and Undertsnad
Good interaction mechanisms
Easy to use widgets and interaction controls
Comprehensive data exploration functionality to support
Shneiderman’s mantra
Global views, conceptual zoom, attribute based
brushing and filtering, dynamic mapping between real
and visual attributes, navigation and consistent marking,
and details on demand.
Integration of the views with these functionalities.
34
28. There is much still to be visualized
in the large
37
29. SoftVis Areas
Static Software Visualization (no need to run the code)
Static representations of control and data flows
Visualization of modules (structures and dependencies)
Static aspects of architectures
Dynamic Software Visualization (running the code)
Animated Algorithms
Test coverage and debugging
Memory usage and code traces
Dynamic aspects of software architectures
38
30. SoftVis Areas
Visualizing data about the software
Contributions, authorship and usage of modules and components
Bug and issues information
Discussions, opinions, and people roles
Software Evolution Visualization
Changes in structure
Dependency evolution
Change in metrics
Evolution of data about the software (all of the above)
39
31. SoftVis Areas
Visualizing data about the software
Contributions, authorship and usage of modules and components
Bug and issues information
Discussions, opinions, and people roles
Software Evolution Visualization
Changes in structure
Dependency evolution
Change in metrics
Evolution of data about the software (all of the above)
40
32. Outline
Introduction
Information and Software Visualization
Software Evolution Visualization (SEV)
A Critical View of the Area
SEV@UFBA
Conclusion
41
33. Software systems must be continually adapted or they become
progressively less satisfactory (LEHMAN, 1978)(LEHMAN, 1980)
42
35. For some systems, the cost devoted to evolution and
maintenance now accounts for more than 90% of total
software costs (ERLIKH, 2000)
Software maintainers spend approximately 50%
of their time in the process of understanding
the code (FJELDSTA e HAMLEN, 1983)
44
36. So, what can we do to facilitate software
comprehension “in the large”?
45
39. SEV of What?
Behavior Mail List
Code Clones Metrics
Data structures Requirements
Defects Software Architecture
Developer Activities Source code changes
Developer Dependency Comment changes
Exception handling Source code dependency
Ecosystem change System dependency
Features Topics
48
40. SEV for What?
Change Comprehension Quality improvement
Change Control Enhancement Process Improvement
Change Prediction Powerful and scalable
Contribution Analysis visualization
Defect Classification and Re-documentation
Analysis Reverse engineering
Development communication Software reuse
Identification of anomalies
Dependency among projects
49
41. Strategies of Analysis
Defines the strategy for the visual presentation of
software artifacts.
Temporal Overview
Temporal Snapshot
Temporal Cumulative
Differential Relative
Differential Absolute
50
42. A visualization for software project
Example 1 awareness and evolution, VISSOFT 2007
RM Ripley, A Sarma, A van der Hoek
of What: Developer activity over the code
for What: contribution analysis and change comprehension
51
43. Example 2
of What: logical
coupling between
modules
Animated visualization of
software history using evolution
storyboards, WCRE 2006
D Beyer, AE Hassan
for What: change prediction, reverse engineering, identification of
anomalies
52
44. Example 3
Exploring software evolution using
spectrographs, WCRE 2004
of What: files by version J Wu, RC Holt, AE Hassan
by recent changes
for What: change prediction (and contribution analysis)
53
46. Outline
Introduction
Information and Software Visualization
Software Evolution Visualization (SEV)
A Critical View of the Area
SEV@UFBA
Conclusion
55
47. Mapping Study
Search String
("software" OR "system")
AND
("visualization" OR "visual" OR "Visualisation")
AND
("evolution" OR "evolving")
56
48. SEV Data Sources
Type Data sources
Source Code CVS SubVersion GIT
Management
Bug Tracking Mantis BugZilla Trac
System
Models
Requirements Features
Other Types mapping Trace
Forums mapping
57
49. Most used data sources
60
49
50
41.78% use more than one data
40
34 source
29
30
20
10
10
5
3 2 2 2
1 1 1 1 1 1 1 1 1 1
0
58
50. Most used metrics
78.08% of the authors use more
60
56
than one metric
50
40
36
30 28
22
20
20
15
10
5
0
Coupling (any) # commit # authors Complexity Logical LOC Cohesion
Coupling
59
54. Papers per type of validation
50
19.18% 72.60% 0.68% 7.53%
45
44
Feasibility study
40 36
35
30 28
25
20
15 12
10
10
4 4 4
5 2 1 1
0
63
55. Outline
Introduction
Information and Software Visualization
Software Evolution Visualization (SEV)
A Critical View of the Area
SEV@UFBA
Conclusion
64
56. Goals of our SoftVis Group
To help developers to build successful InfoVis tools
To help system analysts to use InfoVis tools to
achieve their maintenance goals
To help researchers to evaluate InfoVis tools from a
software engineering point of view
65
61. Using Colors to Represent Evolution Attributes
From one version to the other,
elements that
Appeared are painted in blue
Disappeared are painted in gray
No change are painted in white
Elements that decreased or increase are painted in a
colour scale that ranges from bright green (decreased a lot)
to bright red (increased a lot)
70
64. Implementing and evaluating the Relative
Differential Analysis
Goal: Identify software erosion
Tasks (questions):
What are the hot spots of the source code?
What are the God Classes, long methods? Etc.
Experimental object:
8 versions of MobileMedia (open source)
Subjects: 14 Grad Students
NOVAIS, R. L., CARNEIRO, G. F., SIMOES JUNIOR, P. R. M., MENDONÇA
NETO, M. G. On the Use of Software Visualization to Analyze Software
Evolution - An Interactive Differential Approach. In ICEIS 2011.
73
68. Implementing and evaluating the Absolute
Differential Analysis
Goal: Understand how features are evolving
Tasks (questions):
Tasks related to feature evolution, feature tangling, and feature dependency
analysis. Etc.
Experimental object:
5 versions of an oil company software in Brazil
Subjects: 20 analysts from two cities
NOVAIS, R., NUNES, C., LIMA, C., CIRILO, E., DANTAS, F., GARCIA, A.,
MENDONÇA, M. On the Proactive and Interactive Visualization for Feature
Evolution Comprehension: An Industrial Investigation. In ICSE’12.
79
71. EXAMPLE 2
Cumulative Temporal Evolution
&
Augmented Reality with
SkyscrapAR
84
72. 3D Software Visualization
3D representations for software
visualization, SoftVis’03
A Marcus, L Feng, JI Maletic
“The inclusion of aesthetically appealing elements such as 3D graphics
and animation not only increases the design’s appeal,
intuitiveness, and memorability of a visualization but also eases
perception of the human visual system” (Teyseyre, 2009)
85
73. SEV in 3D – CodeCity’s Example
Building height: number of methods
Building base (width and length):
number of attributes
Program comprehension through software habitability
R Wettel, M Lanza
86
74. Problems with 3D Visualization
Oclusion X Interaction
Navigation in a 3D world with a 2D mouse
87
77. SkyscrapAR
Code-city metaphor
Using a temporal cumulative strategy
to analyze code evolution
In augmented reality
90
78. SkyscrapAR Building Metaphor
(2)
(3)
(1)
(1) Green area – class max LOC in history
(2) Building base – class LOC at current version
(3) Building height – class code churn in history
91
87. SkyscrapAR - Augmented Reality
(a) (b) (c)
(a) the camera captures a scene containing a marker;
(b) the image is transformed to black and white, the marker is detected
and its local coordinate system is computed;
(c) the 3D model is aligned with the coordinate axes.
100 100
89. Outline
Introduction
Information and Software Visualization
Software Evolution Visualization (SEV)
A Critical View of the Area
SEV@UFBA
Conclusion
102
90. Summing up
As software evolution comprehension is complex, there is
a need for multi-metrics, multi-perspectives, multi-data
SEV environments to address the many existing
engineering needs associated with software evolution.
103
91. Summarizing the mapping results
The actual adoption of SEV in industrial environments
is very low
There is very little evaluation of the proposed
approaches
Very few with multi-strategies
104
92. Looking ahead
We need to build good SEV Models to
guide researchers in proposing new SEV approaches
both from the SE and the InfoVis perspectives
guide developers in building SEV tools
guide system analysts in using such tools
guide experimentalists in evaluating such tools
105
95. Software Evolution Visualization
Status, Challenges, and Possible Research Directions
Prof. Manoel Mendonça
http://fpc.dcc.ufba.br http://les.dcc.ufba.br
108 +55 (71) 3283-6311 manoel.mendonca@ufba.br