55
The Last Line Effect Moritz Beller @Inventitech Andy Zaidman Andrey Karpov

The Last Line Effect

Embed Size (px)

Citation preview

Page 1: The Last Line Effect

The Last Line Effect

Moritz Beller@Inventitech

Andy Zaidman

Andrey Karpov

Page 2: The Last Line Effect

TrinityCore ExampleLast Line Effect

Page 3: The Last Line Effect

TrinityCore ExampleLast Line Effect

Page 4: The Last Line Effect

TrinityCore ExampleLast Line Effect

Page 5: The Last Line Effect

Chromium ExampleLast Statement Effect

Page 6: The Last Line Effect

Chromium ExampleLast Statement Effect

Page 7: The Last Line Effect

Chromium ExampleLast Statement Effect

Page 8: The Last Line Effect

Chromium ExampleLast Statement Effect

Page 9: The Last Line Effect

Chromium ExampleLast Statement Effect

Page 10: The Last Line Effect

Chromium Example

Page 11: The Last Line Effect

Chromium Example

Page 12: The Last Line Effect

Chromium Example

Page 13: The Last Line Effect

Chromium Example

Page 14: The Last Line Effect

Chromium Example

Page 15: The Last Line Effect

Chromium Example

Page 16: The Last Line Effect

Chromium Example

Clone Class

Page 17: The Last Line Effect

Chromium Example

Clone Class

AST-Node1

Page 18: The Last Line Effect

Chromium Example

Clone Class

AST-Node

1

1

Page 19: The Last Line Effect

Chromium Example

Clone Class

AST-Node

1 2

1

Page 20: The Last Line Effect

Chromium Example

Clone Class

AST-Node

1 2 3

1

Page 21: The Last Line Effect

Chromium Example

Clone Class

AST-Node

1 2 3 4

1

Page 22: The Last Line Effect

Chromium Example

Clone Class

AST-Node

1 2 3 4 5

1

Page 23: The Last Line Effect

Chromium Example

Clone Class

AST-Node

1 2 3 4 5

1

Page 24: The Last Line Effect

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.

Page 25: The Last Line Effect

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

Page 26: The Last Line Effect

Very Short Clones: Micro-Clones

Page 27: The Last Line Effect

Shortcut: Identical Subexpressions

Page 28: The Last Line Effect

Shortcut: Identical Subexpressions

Page 29: The Last Line Effect

Shortcut: Identical Subexpressions

Page 30: The Last Line Effect

Shortcut: Identical Subexpressions

Page 31: The Last Line Effect

Shortcut: Identical Subexpressions

Page 32: The Last Line Effect

Shortcut: Identical Subexpressions

Shortcut to Faulty Micro-Clones

Page 33: The Last Line Effect
Page 34: The Last Line Effect

PVS-Studio

Page 35: The Last Line Effect

PVS-Studio

Page 36: The Last Line Effect

208 OSS projectsPVS-Studio

Page 37: The Last Line Effect

208 OSS projectsPVS-Studio

Page 38: The Last Line Effect

208 OSS projectsPVS-Studio

Page 39: The Last Line Effect

208 OSS projectsPVS-Studio

202 Faulty Micro-Clones

Page 40: The Last Line Effect

208 OSS projectsPVS-Studio

202 Faulty Micro-Clones

Page 41: The Last Line Effect

Error Distribution for Micro-Clones> 1 Line

Page 42: The Last Line Effect

Error Distribution for Micro-ClonesWithin 1 Line

Page 43: The Last Line Effect

What We Do Not Know (Yet) ...

Page 44: The Last Line Effect

● Why did we find so few faulty micro-clones?

What We Do Not Know (Yet) ...

Page 45: The Last Line Effect

● Why did we find so few faulty micro-clones?

What We Do Not Know (Yet) ...

Page 46: The Last Line Effect

● Why did we find so few faulty micro-clones?

What We Do Not Know (Yet) ...

Page 47: The Last Line Effect

● Why did we find so few faulty micro-clones?

What We Do Not Know (Yet) ...

● Are faulty micro-clones common among micro-clones?

Page 48: The Last Line Effect

● Why did we find so few faulty micro-clones?

What We Do Not Know (Yet) ...

● Are faulty micro-clones common among micro-clones?

Page 49: The Last Line Effect

● Why did we find so few faulty micro-clones?

What We Do Not Know (Yet) ...

● Are faulty micro-clones common among micro-clones?

Page 50: The Last Line Effect

● 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?

Page 51: The Last Line Effect

● 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?

Page 52: The Last Line Effect

@InventitechMoritz Beller, TU Delft

The Last Line Effect

Page 53: The Last Line Effect

@InventitechMoritz Beller, TU Delft

The Last Line Effect

Page 54: The Last Line Effect

@InventitechMoritz Beller, TU Delft

The Last Line Effect

Page 55: The Last Line Effect

@InventitechMoritz Beller, TU Delft

The Last Line Effect

> code.|