Seminar On: Clone Management For Evolving Softwares
Seminar On: Clone Management For Evolving Softwares
Cloning relationship
C
C C
Code snippet
D D D D
A A A A A
B B B B
Clone group
Version i Version i+1 Version i+2 Version i+3 Version i+4
Evolution Patterns
Clone genealogy reflects how programmers evolved
code clones by copying, pasting and modifying code.
consistently
changed
C C
D D D D
A A A A A
B B B B
E E E E
copied, F F F F
pasted,
and modified G
Potential Tool: Warning Cloning
Related Bug consistently
changed
C C
D D D D
A A A A A
B B B B
E E E E
copied, F F F F
pasted,
and modified G
CODE CLONE
TYPE TYPE
1 4
TYPE TYPE
2 3
CLONE :AREAS OF RESEARCH
CLONE CHANGE PATTERNS
GENEALOGY
PROCESS OF CHANGE
MANAGEMENT SYSTEM
CHECK SOURCE
COMMIT SOURCE CODE CODE
VERSION
CONTROL
SYSTEM
DEVELOPERS
CHANGE MANAGEMENT
(USERS) SYSTEM
PROVIDE CHANGED
INFORMATION OF CODE CLONES
AND CLONE SETS
Detection
String Matching – Represents and evaluates code
using string comparisons.
Parameterized Matching
Substring Matching
Token Parsing Techniques
Transforms code into tokens by using
language specific constructs into a single
token string
Form machine
representation
of code
Identify
clones as
identical
subgraphs
Code Clone Refactoring
Best-Case
each player’s best move is the left-most alternative (i.e., evaluated
first)