1. Change Impact Analysis: an Earthquake Metaphor
Salima Hassaine, Ferdaous Boughanmi,
Yann-Gaël Guéhéneuc, Sylvie Hamel and Giuliano Antoniol
1. MOTIVATION
5. CONTRIBUTIONS AND FUTURE WORK
Making changes without understanding their effects can lead to poor effort
estimation and delays in release schedules because of their consequences,
e.g., the introduction of bugs.
We proposed an approach to analyse change propagation and to study
how far a change propagation will proceed from a given class to the others.
Our approach considers changes to a class as an earthquake that
propagates through the class levels, defined by the length of relationships
chain that relate the epicenter class to the other classes.
Motivating example
In Rhino, Bug ID2005511 was introduced by a developer when he implemented
a change to class Kit and missed a required change to class DefiningClassLoader.
In this case, information passes from class Kit to class DefiningClassLoader through
an intermediary class ContextFactory (remained unchanged).
Future work
Adapt eismology models to predict changes to classes.
2. EARTHQUAKE METAPHOR
Level 3
Seismology
Change Impact Analysis
G
Level 2
Level 1
D
A
B
F
C
E
3. APPROACH
Step 1: Identifying Epicenter Class
PageRank-based Metric
Step 2: Identifying Class Levels
3. APPROACH
Step 3: Identifying Impacted Classes
History-based Metric
1. We define a time window T of observation
as the median of time between two subsequent
changes to the important epicenter class.
2. We extract all the commits that happened after
any change to an epicenter class and within the
chosen time window T.
Bit-Vector Algorithm
Combination of the above metrics
We use Ibdoos to implement queries to collect
the set of classes that changed after any change
to the epicenter class and during T.
Extracting data from Software repositories
4. EMPIRICAL STUDY
Context
Analysis Method
Results
RQ1: Using the R statistical system, we build the
3D graph visualising the change propagation from
the epicenter class to other classes.
Research Questions
RQ1
RQ2 For each level, we create a subset that
Change propagation
from XMLEventImpl
contains the number of classes that changed after
any change to the considered epicenter class.
RQ1: Does our metaphor allow us to
observe the scope of change impact?
RQ3: For each level, we create a subset that
RQ2: What is the level most impacted
by a change?
contains the number of earthquakes that stop at
this level.
RQ3: What is the most reachable level
by a change?
RQ2
Change propagation
from TypeValidator
RQ3
We conduct Duncan’s multiple range test to
classify the subsets with respect to the differences
between them.
CONTACT INFORMATION
ACKNOWLEDGMENT
PTIDEJ Team
Pattern Trace Identification,
Detection, and Enhancement in Java
Salima Hassaine
hassaisa@iro.umontreal.ca
Ferdaous Boughanmi
ferdaous.boughanmi@polymtl.ca
Yann-Gaël Guéhéneuc
Sylvie Hamel
yann-gael.gueheneucg@polymtl.ca hamelsyl@iro.umontreal.ca
Giuliano Antoniol
antoniol@ieee.org
This research was partially supported by
FQRNT, NSERC, and Research Chairs in
Software Patterns and Patterns of
Software and in Software Evolution.