26
Clone Detection for Graph-Based Model Transformation Languages Daniel Strüber 1 , Jennifer Plöger 1 , Vlad Acrețoaie 2 1 Philipps-Universität Marburg, Germany 2 Technical University of Denmark, Lyngby, Denmark

Clone Detection for Graph-Based Model Transformation Languages

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