model clone detection in practice · scalability model # nodes # edges sim 428 415 mul 475 576 sem...
TRANSCRIPT
![Page 1: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/1.jpg)
Model Clone Detection in Practice
Florian Deissenboeck, Benjamin Hummel
Elmar Juergens, Michael Pfaehler
Technische Universität München
Bernhard Schaetz
fortiss gGmbH
![Page 2: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/2.jpg)
![Page 3: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/3.jpg)
![Page 4: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/4.jpg)
![Page 5: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/5.jpg)
Detection Steps
Load Model
No
rmalize
Detect
Report
![Page 6: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/6.jpg)
Existing Work
Deissenboeck et. al. [ICSE’08]
Pham et. al. [ICSE’09]
Nguyen et. al. [FASE’09]
Huhn et. al. [MBEES’10]
Different detection algorithm
Application to SCADE models
First detector and
MAN case study
![Page 7: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/7.jpg)
Challenges in Practice
![Page 8: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/8.jpg)
Scalability
Model # Nodes # Edges
SIM 428 415
MUL 475 576
SEM 1,741 2,029
ECW 2,312 2,274
MPC 369 395
AUT 98,251 90,056
Publicly available
(Matlab Central)
“Real-World” (BMW)
![Page 9: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/9.jpg)
Algorithmic Tricks
Cloned Subsystem Removal (CSR)
Splitting at High-Degree Nodes (HDN)
Reduced Branching Heuristic (RBH)
[Pham+09]
[DHJ+08]
[Pham+09]
![Page 10: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/10.jpg)
Runtime Results
C
S
R
H
D
N
R
B
H
SIM MUL SEM ECW MPC AUT
eScan [Pham+09] 5 - - - - -
eScan [Pham+09] 4 6 - 784 - -
eScan [Pham+09] 9 - - - - -
eScan [Pham+09] 8 9 - 72 - -
ConQAT [DHJ+08] 3 4 14 20 5 3283
ConQAT [DHJ+08] 3 3 7 8 6 1888
![Page 11: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/11.jpg)
“…more than half of the clones found
are obviously clones according to our
definition but would not be considered
relevant by a developer.”
MAN case study [DHJ+08]
![Page 12: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/12.jpg)
Improving Relevance
Different notion of clone? (not isomophism)
Different normalization?
Domain-specific metrics for
ranking/filtering clones!
![Page 13: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/13.jpg)
Metrics
Developer 1 Developer 2
Node Size 139 163
Clone Weight 157 183
Relative Weight 110 90
Interface/Weight 86 90
Interface/Node Size 123 123
Deviation for ranking 21 clones
(worst 220, average 146)
Deviation between
developers: 74
![Page 14: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/14.jpg)
Inspection: Tool Support
![Page 15: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/15.jpg)
Summary
Ingrediences for practical application:
(not only for model clones)
• Scalability
• Relevance
• Inspection/Tooling
Working on all three of them,
but none is „solved“ yet :-)
![Page 16: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/16.jpg)
![Page 17: Model Clone Detection in Practice · Scalability Model # Nodes # Edges SIM 428 415 MUL 475 576 SEM 1,741 2,029 ECW 2,312 2,274 MPC 369 395 AUT 98,251 90,056 Publicly available](https://reader036.vdocuments.us/reader036/viewer/2022070109/6043ac1a514a430e0b41cb2c/html5/thumbnails/17.jpg)
What should be the clones?