Upload
daniel-g-strueber
View
267
Download
0
Embed Size (px)
Citation preview
Clone Detection for Graph-Based Model Transformation Languages
Daniel Strüber1, Jennifer Plöger1, Vlad Acrețoaie2
1 Philipps-Universität Marburg, Germany2 Technical University of Denmark, Lyngby, Denmark
2
Common wisdom: software clones are a bad practice.
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
“Number one in the stinkparade is duplicated code.If you see the same codestructure in more thanone place, you can be surethat your program will bebetter if you find a way tounify it.”[Fowler 2002, p. 63]
© Images: Addison-Wesley Professional,Author‘s website
• Clone: A copied piece of software,modified to fit for a new purpose.
• Makes up large percentage of allcode: 15-25% in embedded SW
• Related to quality issues• Error-prone• Dead code• Inflated code base
3
Common wisdom: software clones are a bad practice.
p
p‘“clone“
copy &modify
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
4
Motivations forcloning in practice
• Abstractions havetheir own cost/risk
• Easy exploration
• Sometimesunavoidable!
[WCRE’06/ESE’08]
Software clones are a bad practice: really?
→ In fact, there’s a trade-off.
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
© Images: Author‘s websites
5
Models Transformations Source Code
Clones in Model-Driven Engineering
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
publicclass { }
publicclass { }
publicclass { }
publicclass { }
6
• Multiple rule variants: Reusemechanisms rarely available,cloning is a common paradigm• Error-prone• Leads to large rule sets• Performance bottlenecks
• A clone detection toolto address these issuesis not available yet• Many promising use-cases!
Clones in Graph-Based Model Transformations
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
7
Agenda
• Clones in Model Transformations
• Use-Cases & Requirements
• Customizing Existing Techniques
• Evaluation
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
Refactoring Clone management Smart IDEs
Qualityassessment
Performanceoptimization
8
Use-Cases for Clone Detection Techniques
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
© Images: Jens Mortensen/NY Times, Sarimin, Kevin Thompson, David Robertson, QALogic
9
Use case 1: Refactoring
DiamCirc
Tri
Replace clones with a reuse mechanism
• Reuse mechanisms: annotative vs. composition-based
• Manual refactoring tedious: 100s of rules! Calls for automation [Strüber et al. FASE16]
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
10
Use case 2: Clone Management
Leave clones as is & propagate changes automatically
• Useful if refactoring is unavailable/undesirable
• Related work on code clones[Nguyen et al. TSE12, Narasimhan et al. ASE15]
Management Tool
monitors
synchronizesedits
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
11
Use case 3: Smart IDEs
monitors
Smart IDE
monitors &recommends
edits
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
Can support transformation developers
• Introduce abstractions
• Reuse existing elements
• Auto-completion
12
Use case 4: Quality assessment
QAToolhow many
clones?
Assess transformations and whole languages
• Useful for QA teams, teachers, language designers
• Can identify new design patterns
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
13
Use case 5: Performance optimization
Large number of rules: performance slows down
• 1000s of rules can take hours to execute
• Variability-aware execution engine [Strüber et al., FASE15]
Execution engine
…
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
14
Pattern-based
Completeness
Performance
Suitable scope
Tool integration
Clone detection for graph-based MT: requirements
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
15
Pattern-based
Completeness
Performance
Suitable scope
Tool integration
Clone detection for graph-based MT: requirements
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
Rules specify patterns →Clones are common sub-patterns
Clone
16
Pattern-based
Completeness
Performance
Suitable scope
Tool integration
Clone detection for graph-based MT: requirements
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
Reported clones should becomplete rather than partial
17
Pattern-based
Completeness
Performance
Suitable scope
Tool integration
Clone detection for graph-based MT: requirements
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
Mining common graph patterns is NP-hard
Generic pattern miningtools do not scale
© Image: W RCheswick/ Bell Labs
18
Pattern-based
Completeness
Performance
Suitable scope
Tool integration
Clone detection for graph-based MT: requirements
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
May require to find clones
• inside one rule
• across multiple rules
• across whole rule sets
19
Pattern-based
Completeness
Performance
Suitable scope
Tool integration
Clone detection for graph-based MT: requirements
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
Should be integrated withexisting MT tools
20
Pattern-based
Completeness
Performance
Suitable scope
Tool integration
Clone detection for graph-based MT: requirements
Hard requirement, Soft requirement, Not required
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
21
Adapt model clone detection tools toaddress the requirements of MT CD
• Two suitable ones:
• ConQAT [Deissenboeck et al., WSC 2010]
• eScan [Pham et al., ICSE 2009]
• Both introduced for Simulink models
• accuracy vs. performance trade-off
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
Groups of clonefragments
eScan
Labeledgraph
a priori algo
Clusters ofClone pairs
Labeledgraph
ConQAT
heuristics
22
Adaptation of existing techniques
Cloneconverters
Rule clones
Ruleconverters
Rules
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
23
Evaluation
Materials
• 2 rule sets of 50-60 rules• Edit operation recognition [Bürdek 2015]• Model constraint translation [Arendt 2014]• In both cases, 8-12 subsets
Set-up
• Studied if eScan, ConQAT,and our custom detectorScanQAT satisfy therequirements
• Applied search to the whole rule setsand each group
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
24
Results
Pattern-based
Completeness
Performance
Suitable scope
Tool integration
ConQAT ScanQAT eScan
D = Ensured by design
D D D
I I I
I I I
D Dat leastfor subsets
1-10secrule sets:memoryoverflow
rule sets:memoryoverflow
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
I = Enabled by our implementation
25
Tool support
DEMO
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages
Refactoring Clone management Smart IDEs
Qualityassessment
Performanceoptimization
Usecases:
26
Contributions:• Five use-cases & reqs• Adaptation of available
techniques• Evaluation on real rules
Future Work:• Incremental model CD• CD for other language
paradigms• Large-scale evaluation
Beefing up model clone detectors for graph-based MT clone detection
Daniel Strüber, Jennifer Plöger, Vlad Acrețoaie:Clone Detection for Graph-Based Model Transformation Languages