300 likes | 382 Views
An Algorithm for Generating Model-Sensitive Search Plans for EMF Models. Railway Systems and Safety Requirements. Developed in the MOGENTES project [www.mogentes.eu]. sw1. sw2. Metamodel. Ordered reference navigable in one direction. {ordered}. Route. Sensor. sensors. defines.
E N D
An Algorithmfor GeneratingModel-Sensitive Search Plans for EMF Models 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 1
Railway Systems and Safety Requirements • Developed in the MOGENTES project [www.mogentes.eu] sw1 sw2 Metamodel Ordered reference navigable in one direction {ordered} Route Sensor sensors defines observes se1 se2 inPosition ro SwPos Switch Model sp s2:sensors [2] [1] ro:Route se1:Sensor se2:Sensor s1:sensors d:defines o1:observes o2:observes i:inPosition sp:SwPos sw1:Switch sw2:Switch 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 2
Ensuring Safety Requirements at Runtime by Pattern Matching • Which sensors, switches and positions must be checked for a route? sw1 sw2 Variables Metamodel RO,IDX,SE,SW,SWP {ordered} Route Sensor sensors Non-binary constraint defines observes se1 se2 inPosition ro Constraints SwPos Switch sensors(RO,IDX,SE) observes(SE,SW) Model Pattern matching inPosition(SW,SWP) sp defines(RO,SWP) Pattern s2:sensors IDX:Integer [2] [1] ro:Route se1:Sensor se2:Sensor RO:Route SE:Sensor s1:sensors sensors d:defines o1:observes o2:observes defines observes i:inPosition inPosition sp:SwPos sw1:Switch sw2:Switch SWP:SwPos SW:Switch 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 3
Motivation • Pattern matcher application scenarios • On-the-fly consistency validation • Ensuring safety requirements at runtime • Application condition checks in rule-based model transformation tools • Bidirectional model synchronization • … • Pattern matcher requirements in an industrial context • Efficiency • Scalability • Standard compliance • Goal • Improve the runtime performance of pattern matching • Reduce the number of steps • Run the pattern matcher on top of EMF models 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 4
Search plan: a sequence of operations Search Plan Driven Pattern Matching I. BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB Adornment: binding information for all variables Operation: navigation along a defines edge from a Route to a SwPos Operation adornment: binding preconditionRO and SWP must be bound and free, respectively Free variable SWP get bound by the operation observes(SE,SW) BB B B RO ro B RO ro B RO ro B RO ro F F IDX F IDX F IDX B IDX 1 F F SE F SE F SE B SE se1 F F SW F SW B SW sw1 B SW sw1 F F SWP B SWP sp B SWP sp B SWP sp (Initial) partial match Variable RO is Bound(mapped) to ro. Variables IDX, SE, SW and SWP are Free(unmapped). Pattern matcher performs 4 steps (i.e., traverses 4 matches) Model Pattern s2:sensors IDX:Integer [2] [1] ro:Route se1:Sensor se2:Sensor RO:Route SE:Sensor s1:sensors sensors d:defines o1:observes o2:observes defines observes i:inPosition inPosition sp:SwPos sw1:Switch sw2:Switch SWP:SwPos SW:Switch 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 5
Search Plan Driven Pattern Matching II. BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF The number of pattern matching steps is influenced by the used search plan. B RO ro B RO ro B RO ro Backtracking B RO ro F IDX F IDX B IDX 1 B IDX 1 F SE F SE B SE se1 B SE se1 F SW F SW F SW B SW sw1 Perform search plan optimization (before pattern matching) to reduce the number of steps (during pattern matching) F SWP B SWP sp B SWP sp B SWP sp B RO ro B RO ro B IDX 2 B IDX 2 Pattern matcher performs 6 steps with the second search plan. B SE se2 B SE se2 Model F SW B SW sw2 B SWP sp B SWP sp Pattern s2:sensors IDX:Integer [2] [1] ro:Route se1:Sensor se2:Sensor RO:Route SE:Sensor s1:sensors sensors d:defines o1:observes o2:observes defines observes i:inPosition inPosition sp:SwPos sw1:Switch sw2:Switch SWP:SwPos SW:Switch 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 6
Search Plan Optimization Space BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB • Each path (from BFFFF to BBBBB) represents a search plan • Which is the best one? • Quantitative characterization needed • Weights for operations • Costs for partial search plans (i.e., path prefixes) • Goal: weights and costs characterize the pattern matching traversal process • Algorithm needed (search plan generation algorithm) • Goal: find the best search plan (w.r.t. the cost) sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 7
Search Plan Generation Approaches BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB • Domain-specific (DS) approaches • Operation weights and search plan costs • From the metamodel: type and multiplicity information • Independent from the model • Always the same search plan for all models • Model-sensitive (MS) approaches • Operation weights and search plan costs • From model statistics: number of objects/links of a certain type • Different search plans for different models sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 8
Model-Sensitive Search Plan Generation Approaches Model representation Cost function Supported constraints Search plan generation algorithm [1] Giese, Hildebrandt, Seibel: Improved Flexibility and Scalability by Interpreting Story Diagrams [2] Geiß, Batz, Grund, Hack, Szalkowski: GrGen: A Fast SPO-Based Graph Rewriting Tool [3] Varró, Varró, Friedl: Adaptive Graph Pattern Matching for Model Transformations Using Model-Sensitive Search Plans Fujaba [1] EMF N/A Binary Built-in greedy GrGen [2] Own Simple (product) Binary Graph VIATRA [3] Own Simple (sum) Binary Graph Current approach EMF(pluggable) Complex(pluggable) Arbitrary Dynamic programming 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 9
Dynamic Programming Based Search Plan Generation Algorithm BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB • Dynamic programming • Table is filled out iteratively • Columns: number of free variables in the initial adornment (+1) sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF BFFFF has 4 free variables observes(SE,SW) FB BFBBB 4 3 2 1 0 4 3 2 1 0 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 10
Algorithmic Problems I. BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB • Exponential number of adornments (25) • Store only a limited number of adornments in each column • Limit • User-defined parameter of the algorithm (e.g., k=2 in our example) • Trade-off between efficiency and optimality • Number of rows defined by k sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 4 3 2 1 0 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 11
Algorithmic Problems II. BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB • Unnecessary recalculations in case of shared path suffixes • Store only the best of those path prefixes that end at the same adornment • Adornment check required when inserting into the table sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 4 3 2 1 0 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 12
Algorithmic Problems III. BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB • Best search plan • Sorted columns in increasing order according to the search plan costs • Search plan cost comparison required when inserting into the table sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 4 3 2 1 0 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 13
Algorithmic Problems IV. BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB • Adornments without outgoing edges • Reachability analysis required when inserting into the table • Not discussed now sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 4 3 2 1 0 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 14
Algorithm Data Structures BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB Applicable operations sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF Adornment Search plancost observes(SE,SW) FB BFBBB 0 BFFFF 1 Search plan(no operations applied yet) Operation weights(sorted in an increasing order) defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 State 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 15
Algorithm Initialization BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 4 3 1 0 BFFFF 1 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 Initial state goes to the top-left field 2 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 16
Algorithm BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 4 3 1 0 BFFFF 1 1 BFFFB 1 defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF B***F 1 • Iterative process • On the columns in decreasing order • On the rows in increasing order • On the present extension operations in weight increasing order • Each iteration creates a new state sensors(RO,IDX,SE) BFF BFF** 2 2 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 17
Algorithm BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB sensors(RO,IDX,SE) BFF BBBBB sensors(RO,IDX,SE) BFF BBBFB observes(SE,SW) BF defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF BBBBF inPosition(SW,SWP) BF defines(RO,SWP) BF observes(SE,SW) FB BFBBB 4 3 1 0 BFFFF 1 1 BFFFB 1 defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF B***F 1 inPosition(SW,SWP) FB ***FB 1 sensors(RO,IDX,SE) BFF BFF** 2 sensors(RO,IDX,SE) BFF BFF** 2 2 The new state has 3 free variables 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 18
Algorithm BFFFF defines(RO,SWP) BF BFFFB inPosition(SW,SWP) FB BFFBB 2 BBBFF 2 sensors(RO,IDX,SE) BFF BFF** 2 sensors(RO,IDX,SE) BFF defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF observes(SE,SW) BF **BF* 1 sensors(RO,IDX,SE) BFF BBBFF observes(SE,SW) BF 4 3 2 1 0 BFFFF 1 1 BFFFB 1 defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF B***F 1 inPosition(SW,SWP) FB ***FB 1 sensors(RO,IDX,SE) BFF BFF** 2 sensors(RO,IDX,SE) BFF BFF** 2 2 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 19
Algorithm 4 3 2 1 1 0 BFFFF 1 1 BFFFB 1 2 BBBFF 2 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 defines(RO,SWP) BF B***F 1 inPosition(SW,SWP) FB ***FB 1 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 sensors(RO,IDX,SE) BFF BFF** 2 observes(SE,SW) BF **BF* 1 2 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 20
Algorithm 2 BFFBB 1 defines(RO,SWP) BF B***F 1 inPosition(SW,SWP) FB ***FB 1 Better search plan? No observes(SE,SW) FB **FB* 1 Same adornment? No sensors(RO,IDX,SE) BFF BFF** 2 3 2 1 1 1 BFFFB 1 2 BBBFF 2 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 inPosition(SW,SWP) FB ***FB 1 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 observes(SE,SW) BF **BF* 1 2 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 21
0 Algorithm 3 BBBFB 2 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) BF **BF* 1 3 2 1 1 1 BFFFB 1 2 BBBFF 2 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 inPosition(SW,SWP) FB ***FB 1 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 observes(SE,SW) BF **BF* 1 2 2 BFFBB 1 defines(RO,SWP) BF B***F 1 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) FB **FB* 1 sensors(RO,IDX,SE) BFF BFF** 2 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 22
Algorithm 4 4 BBBBF BBBFB 2 2 sensors(RO,IDX,SE) sensors(RO,IDX,SE) BFF BFF BFF** BFF** 2 2 observes(SE,SW) defines(RO,SWP) BF BF **BF* B***F 1 1 Better search plan? No inPosition(SW,SWP) BF ***BF 1/2 Same adornment? No Yes defines(RO,SWP) BF B***F 1 2 1 0 1 2 BBBFF 2 3 BBBFB 2 sensors(RO,IDX,SE) BFF BFF** 2 defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 observes(SE,SW) BF **BF* 1 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) BF **BF* 1 2 2 BFFBB 1 defines(RO,SWP) BF B***F 1 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) FB **FB* 1 sensors(RO,IDX,SE) BFF BFF** 2 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 23
Algorithm 3 BFBBB 1 4 BBBBB 2 defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF B***F 1 inPosition(SW,SWP) FB ***FB 1 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) FB **FB* 1 sensors(RO,IDX,SE) BFF BFF** 2 No valid continuation observes(SE,SW) BB **BB* 2 1 0 1 2 BBBFF 2 3 BBBFB 2 sensors(RO,IDX,SE) BFF BFF** 2 defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 observes(SE,SW) BF **BF* 1 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) BF **BF* 1 2 2 BFFBB 1 4 BBBBF 2 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) BF **BF* 1 observes(SE,SW) FB **FB* 1 inPosition(SW,SWP) BF ***BF 1/2 sensors(RO,IDX,SE) BFF BFF** 2 defines(RO,SWP) BF B***F 1 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 24
Algorithm 5 6 5 BBBBB BBBBF BBBBF 2 1 2 5 BBBBB 2 sensors(RO,IDX,SE) sensors(RO,IDX,SE) defines(RO,SWP) BFF BF BFF BFF** B***F BFF** 2 1 2 defines(RO,SWP) BF B***F 1 Same adornment? Yes observes(SE,SW) sensors(RO,IDX,SE) observes(SE,SW) BF BF BFF BFF** **BF* **BF* 1 2 1 sensors(RO,IDX,SE) BFF BFF** 2 Better search plan? No inPosition(SW,SWP) inPosition(SW,SWP) defines(RO,SWP) BF BF FB B***F ***BF ***FB 1/2 1 1 observes(SE,SW) BF **BF* 1 2 1 0 1 2 BBBFF 2 3 BBBFB 2 4 BBBBB 2 sensors(RO,IDX,SE) BFF BFF** 2 defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF B***F 1 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) BF **BF* 1 inPosition(SW,SWP) FB ***FB 1 sensors(RO,IDX,SE) BFF BFF** 2 observes(SE,SW) BF **BF* 1 observes(SE,SW) BB **BB* 2 2 BFFBB 1 4 BBBBF 2 defines(RO,SWP) BF B***F 1 sensors(RO,IDX,SE) BFF BFF** 2 inPosition(SW,SWP) FB ***FB 1 observes(SE,SW) BF **BF* 1 observes(SE,SW) FB **FB* 1 inPosition(SW,SWP) BF ***BF 1/2 sensors(RO,IDX,SE) BFF BFF** 2 defines(RO,SWP) BF B***F 1 4 3 2 1 0 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 25
Algorithm 0 1 defines(RO,SWP) BF inPosition(SW,SWP) FB sensors(RO,IDX,SE) BFF observes(SE,SW) BB Algorithm returns the search plan in T[0][1] 4 BBBBB 2 B***F 1 ***FB 1 BFF** 2 4 3 2 1 0 **BB* 1 2 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 26
Measurement Results I. • Eager strategy (k=1) suffices in practical cases? • Larger k can be better even for small patterns 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 27
Measurement Results II. • Search plan cost function makes sense • Good correlation between search plan cost and pattern matching steps 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 28
Measurement Results III. • Model-sensitive (MS) search plans outperform domain-specific (DS) ones • On all test models • By nearly 400 steps in average • When the pattern has many edges with arbitrary multiplicity 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 29
Summary • Pattern matcher • Improve runtime performance: reduced number of PM steps • Fully implemented • Flexible and embeddable into different tools • Model-sensitive search plans • Operation weights from the model • First such solution for EMF • Search plan generation algorithm • General n-ary operations • Complex cost functions (not only addition/multiplication) • Parameterization: trade-off between efficiency and optimality • Usable without the pattern matcher • Complex attribute manipulation in bidirectional transformation 28. Mai 2012 | Real-Time Systems Lab | Prof. Dr. Andy Schürr | Dr. GergelyVarró | 30