SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
Micro-clones are tiny duplicated pieces of code; they typically comprise only a few statements or lines. In this paper, we expose the “last line effect,” the phenomenon that the last line or statement in a micro-clone is much more likely to contain an error than the previous lines or statements. We do this by analyzing 208 open source projects and reporting on 202 faulty micro-clones
Micro-clones are tiny duplicated pieces of code; they typically comprise only a few statements or lines. In this paper, we expose the “last line effect,” the phenomenon that the last line or statement in a micro-clone is much more likely to contain an error than the previous lines or statements. We do this by analyzing 208 open source projects and reporting on 202 faulty micro-clones
21.
Chromium Example
Clone Class
AST-Node
1 2 3 4
1
22.
Chromium Example
Clone Class
AST-Node
1 2 3 4 5
1
23.
Chromium Example
Clone Class
AST-Node
1 2 3 4 5
1
24.
Chromium Example
Clone Class
AST-Node
1 2 3 4 5
1
Type 2 Clone: “syntactically identical cop[ies]; only variable, type, or
function identifiers have […] changed.” Koschke, 2007.
25.
Chromium Example
Clone Class
AST-Node
1 2 3 4 5
1
Type 2 Clone: “syntactically identical cop[ies]; only variable, type, or
function identifiers have […] changed.” Koschke, 2007.
Very Short Type 2-Clone:
Micro-Clone
43.
●
Why did we find so few faulty micro-clones?
What We Do Not Know (Yet) ...
44.
●
Why did we find so few faulty micro-clones?
What We Do Not Know (Yet) ...
45.
●
Why did we find so few faulty micro-clones?
What We Do Not Know (Yet) ...
46.
●
Why did we find so few faulty micro-clones?
What We Do Not Know (Yet) ...
●
Are faulty micro-clones common among micro-clones?
47.
●
Why did we find so few faulty micro-clones?
What We Do Not Know (Yet) ...
●
Are faulty micro-clones common among micro-clones?
48.
●
Why did we find so few faulty micro-clones?
What We Do Not Know (Yet) ...
●
Are faulty micro-clones common among micro-clones?
49.
●
Why did we find so few faulty micro-clones?
What We Do Not Know (Yet) ...
●
Are faulty micro-clones common among micro-clones?
●
How are micro-clones created and evolved?
50.
●
Why did we find so few faulty micro-clones?
What We Do Not Know (Yet) ...
●
Are faulty micro-clones common among micro-clones?
●
How are micro-clones created and evolved?
51.
@Inventitech
Moritz Beller, TU Delft
The Last Line Effect
52.
@Inventitech
Moritz Beller, TU Delft
The Last Line Effect
53.
@Inventitech
Moritz Beller, TU Delft
The Last Line Effect
54.
@Inventitech
Moritz Beller, TU Delft
The Last Line Effect
> code.|