SlideShare a Scribd company logo
1 of 16
Download to read offline
Towards Scalable Validation of Low-Code System Models:
Mapping EVL to VIATRA Patterns
Qurat ul ain Ali1, Benedek Horváth2,3, Dimitris Kolovos1, Konstantinos Barmpis1,
Ákos Horváth2
1 University of York, York, UK
2 IncQuery Labs cPlc., Budapest, Hungary
3 Johannes Kepler University Linz, Linz, Austria
Contact: Benedek.Horvath@incquerylabs.com
Validation of Low-Code System Models
• Low-code platforms adopt Model-Driven Engineering concepts
• Large software system models
• Model correctness is essential
• Scalable cloud resources → $$$
2
SOTA model validation engines should adapt to these needs
Cyber-Physical Systems Simulation
• Integrated CPS simulation for industry 4.0
• Queries on continuously changing runtime models
3
SOTA model query engines should adapt to these needs
[1] Márton Búr, Gábor Szilágyi, András Vörös, Dániel Varró: Distributed graph queries over models@run.time
for runtime monitoring of cyber-physical systems. Int. J. Softw. Tools Technol. Transf. 22(1): 79-102 (2020)
Figure source: [1]
Epsilon
4
• Epsilon – a family of languages for MDE:
• EOL: model queries
• EVL: model validation
• Model connectivity (EMC): to access the models
Epsilon live: https://www.eclipse.org/epsilon/live/
Viatra
5
•Declarative graph query
language
•Transitive closure, negation
cond., etc.
•Compositional, reusable
•Local + Global queries
Definition
•Incremental evaluation
•Cache result set
(RETE networks)
•Maintain incrementally
upon model change
•Local search-based
evaluation
Execution
•On-the-fly validation,
•Works out-of-the-box with
EMF applications,
•View generation,
•Derived features.
Tooling
•AUTOSAR case study
•3 tools compared (Java,
MDT-OCL, IncQuery)
•Scalability measurements
•Load + query
•Manipulate + re-check
•Up to 1.5 million elements
Experiments
https://www.eclipse.org/viatra/
Validation Rule Execution in Sequential EVL
• For each Variable Declaration
• Check if there is a Single Variable Access
• Whose variable reference refers to it
• O (|Variable Declaration| x |Single Variable Access| )
• Can be expensive if:
• Single Variable Access is not cached
• Model changes and rules should be reevaluated
6
Viatra with incremental
query engine
Overview of the Approach
EVL
validation
program
Translate
constraints to
VQL patterns
Evaluate the
constraints by
calling Viatra
Show results in
Epsilon
Phase I Phase II Phase III
7
Running Example
8
Java metamodel (MoDisco)
excerpt
EVL constraint
VQL pattern
Proposed Workflow
9
Phase I Phase II
Phase III
Query Translations
EOL expression VQL pattern Matcher API call
Java!NamedElement.all.selectOne(u|u.name="main")
Java!NamedElement.all.exists(u|u.name="main")
Java!NamedElement.all.one(u|u.name="main")
Java!NamedElement.all.none(u|u.name="main")
Java!NamedElement.all.count(u|u.name="main")
Java!NamedElement.all.nMatch(u|u.name="main",2)
Java!NamedElement.all.atLeastNMatch(u|u.name="main",1)
Java!NamedElement.all.atMostNMatch(u|u.name="main",1)
pattern Java1(ne: NamedElement) {
NamedElement.name(ne, "main");
}
oneArbitraryMatch
hasMatch
countMatches == 1
countMatches == 0
countMatches
countMatches == 2
countMatches >= 1
countMatches <= 1
Java!NamedElement.all.reject(u|u.name="main")
Java!NamedElement.all.forAll(u|u.name="main")
pattern Java1(ne: NamedElement) {
neg find Java1internal(ne);
}
pattern Java1internal(ne: NamedElement) {
NamedElement.name(ne, "main");
}
allMatches
hasMatch == false
10
Benchmarks
• MoDisco EMF model of the Eclipse source code [4]
• FindBugs validation rules in EVL
• Compared performance of:
• Incremental Viatra engine (RETE)
• Local search based Viatra engine (LS)
• Sequential EVL engine
• Measured execution time, memory use of the engines
11
Evaluation
• Shortest execution time: RETE
• Longest execution time: Sequential EVL
• Local search engine with base index ~ RETE
• Highest memory use: RETE
• Lowest memory use: Sequential EVL
• Local search engine with base index ~ RETE
12
94 92 88
49
141 133 126
80
284
268
243
183
0
50
100
150
200
250
300
RETE LS with base
index
LS without base
index
Sequential EVL
Memory
use
(MB)
Engine name
Memory use of the engines
100k 200k 500k
0.94 1.35
205.72 205.99
1.77 2.49
883.91 955.62
4.32 6.06
93.19
6390.36
0.10
1.00
10.00
100.00
1000.00
10000.00
RETE LS with base
index
LS without
base index
Sequential EVL
Execution
time
(s)
Engine name
Execution time of the engines
100k 200k 500k
Lessons Learnt
• Performance of sequential EVL engine can be improved by Viatra
• Incremental engine speeded-up the execution by 1481x
• Duration of the query translation is negligible
• https://github.com/lowcomote/evl-viatra-prototype
Limitations:
• First-order operations on all instances of model elements
• Single-value references, attributes
• Integrated to EOL, EVL
13
Future Work
• Integrate to Epsilon Transformation and Pattern Languages
• Extend supported elements:
• Multi-value references
• User-defined operations
• Performance comparisons with the parallel EVL engine [5]
14
Acknowledgements
• This work is partially funded by the European Union’s Horizon
2020 research and innovation programme under the Marie
Skłodowska-Curie grant agreement No 813884,
• and the National Research, Development and Innovation Fund of
Hungary, financed under the 2019-2.1.1-EUREKA-2019-00001
funding scheme.
• The authors are grateful for the valuable feedback of Géza
Kulcsár and the anonymous reviewers about the paper.
15
References
[1] Márton Búr, Gábor Szilágyi, András Vörös, Dániel Varró: Distributed graph
queries over models@run.time for runtime monitoring of cyber-physical
systems. Int. J. Softw. Tools Technol. Transf. 22(1): 79-102 (2020)
[2] Dániel Varró, Gábor Bergmann, Ábel Hegedüs, Ákos Horváth, István Ráth,
Zoltán Ujhelyi: Road to a reactive and incremental model transformation
platform: three generations of the VIATRA framework. Softw. Syst. Model.
15(3): 609-629 (2016)
[3] Charles Forgy: Rete: A Fast Algorithm for the Many Patterns/Many
Objects Match Problem. Artif. Intell. 19(1): 17-37 (1982)
[4] http://atenea.lcc.uma.es/projects/LinTra.html
[5] Sina Madani, Dimitrios S. Kolovos, Richard F. Paige: Parallel Model
Validation with Epsilon. ECMFA 2018: 115-131 16

More Related Content

What's hot

Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...
People10 Technosoft Private Limited
 
Tech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning productsTech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning products
Gianmario Spacagna
 
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformHow to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
Databricks
 

What's hot (20)

CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Magdalena Stenius: MLOPS Will Change Machine Learning
Magdalena Stenius: MLOPS Will Change Machine LearningMagdalena Stenius: MLOPS Will Change Machine Learning
Magdalena Stenius: MLOPS Will Change Machine Learning
 
How to Use Innoslate for Beginners
How to Use Innoslate for BeginnersHow to Use Innoslate for Beginners
How to Use Innoslate for Beginners
 
SPEC Innovations: New Features in Innoslate Webinar
SPEC Innovations: New Features in Innoslate WebinarSPEC Innovations: New Features in Innoslate Webinar
SPEC Innovations: New Features in Innoslate Webinar
 
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
 
VIATRA 3: A Reactive Model Transformation Platform
VIATRA 3: A Reactive Model Transformation PlatformVIATRA 3: A Reactive Model Transformation Platform
VIATRA 3: A Reactive Model Transformation Platform
 
Eclipse Neon Democamp Budapest - VIATRA 1.3 release
Eclipse Neon Democamp Budapest - VIATRA 1.3 releaseEclipse Neon Democamp Budapest - VIATRA 1.3 release
Eclipse Neon Democamp Budapest - VIATRA 1.3 release
 
Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...
 
Crafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoCrafted Design - Sandro Mancuso
Crafted Design - Sandro Mancuso
 
MLOps - Build pipelines with Tensor Flow Extended & Kubeflow
MLOps - Build pipelines with Tensor Flow Extended & KubeflowMLOps - Build pipelines with Tensor Flow Extended & Kubeflow
MLOps - Build pipelines with Tensor Flow Extended & Kubeflow
 
B Kindilien-Does Manufacturing Have a Future?
B Kindilien-Does Manufacturing Have a Future?B Kindilien-Does Manufacturing Have a Future?
B Kindilien-Does Manufacturing Have a Future?
 
Tech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning productsTech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning products
 
Model versioning done right: A ModelDB 2.0 Walkthrough
Model versioning done right: A ModelDB 2.0 WalkthroughModel versioning done right: A ModelDB 2.0 Walkthrough
Model versioning done right: A ModelDB 2.0 Walkthrough
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
 
Weave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any KubernetesWeave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any Kubernetes
 
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformHow to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
 
Dependency inversion using ports and adapters
Dependency inversion using ports and adaptersDependency inversion using ports and adapters
Dependency inversion using ports and adapters
 
Batch Process Analytics
Batch Process Analytics Batch Process Analytics
Batch Process Analytics
 
Icsoc16a.ppt
Icsoc16a.pptIcsoc16a.ppt
Icsoc16a.ppt
 
Roofline Model for FPGA: A tool for Performance Analysis and Application Opti...
Roofline Model for FPGA: A tool for Performance Analysis and Application Opti...Roofline Model for FPGA: A tool for Performance Analysis and Application Opti...
Roofline Model for FPGA: A tool for Performance Analysis and Application Opti...
 

Similar to Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA Patterns

Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Lionel Briand
 
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.pptProto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
AnirbanBhar3
 
Abstractions and Directives for Adapting Wavefront Algorithms to Future Archi...
Abstractions and Directives for Adapting Wavefront Algorithms to Future Archi...Abstractions and Directives for Adapting Wavefront Algorithms to Future Archi...
Abstractions and Directives for Adapting Wavefront Algorithms to Future Archi...
inside-BigData.com
 

Similar to Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA Patterns (20)

IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
 
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
 
Decreasing your Coffe Consumption by Incremental Code regeneration
Decreasing your Coffe Consumption by Incremental Code regenerationDecreasing your Coffe Consumption by Incremental Code regeneration
Decreasing your Coffe Consumption by Incremental Code regeneration
 
Incremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software EngineeringIncremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software Engineering
 
SERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolSERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_school
 
SERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the Cloud
 
SSBSE 2020 keynote
SSBSE 2020 keynoteSSBSE 2020 keynote
SSBSE 2020 keynote
 
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.pptProto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
 
Model visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsModel visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling tools
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 Webinar
 
Hardware-Software allocation specification of IMA systems for early simulation
Hardware-Software allocation specification of IMA systems for early simulationHardware-Software allocation specification of IMA systems for early simulation
Hardware-Software allocation specification of IMA systems for early simulation
 
Abstractions and Directives for Adapting Wavefront Algorithms to Future Archi...
Abstractions and Directives for Adapting Wavefront Algorithms to Future Archi...Abstractions and Directives for Adapting Wavefront Algorithms to Future Archi...
Abstractions and Directives for Adapting Wavefront Algorithms to Future Archi...
 
Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML Models
 
Developing Digital Twins
Developing Digital TwinsDeveloping Digital Twins
Developing Digital Twins
 
01-06 OCRE Test Suite - Fernandes.pdf
01-06 OCRE Test Suite - Fernandes.pdf01-06 OCRE Test Suite - Fernandes.pdf
01-06 OCRE Test Suite - Fernandes.pdf
 
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptxIntro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
 
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...
 
EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012
 
High-performance model queries
High-performance model queriesHigh-performance model queries
High-performance model queries
 
Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts
 

More from IncQuery Labs

More from IncQuery Labs (10)

IncQuery_presentation_Incose_EMEA_WSEC.pptx
IncQuery_presentation_Incose_EMEA_WSEC.pptxIncQuery_presentation_Incose_EMEA_WSEC.pptx
IncQuery_presentation_Incose_EMEA_WSEC.pptx
 
IncQuery-Integrate22-20220607.pdf
IncQuery-Integrate22-20220607.pdfIncQuery-Integrate22-20220607.pdf
IncQuery-Integrate22-20220607.pdf
 
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
 
The Genesis of Holistic Systems Engineering: Completeness and Consistency Man...
The Genesis of Holistic Systems Engineering: Completeness and Consistency Man...The Genesis of Holistic Systems Engineering: Completeness and Consistency Man...
The Genesis of Holistic Systems Engineering: Completeness and Consistency Man...
 
IncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IWIncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IW
 
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...
 
Model Checking as a Service: Towards Pragmatic Hidden Formal Methods
Model Checking as a Service: Towards Pragmatic Hidden Formal MethodsModel Checking as a Service: Towards Pragmatic Hidden Formal Methods
Model Checking as a Service: Towards Pragmatic Hidden Formal Methods
 
IncQuery Labs Models 2020 MIP Talk
IncQuery Labs Models 2020 MIP TalkIncQuery Labs Models 2020 MIP Talk
IncQuery Labs Models 2020 MIP Talk
 
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
 

Recently uploaded

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 

Recently uploaded (20)

Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
What is a Recruitment Management Software?
What is a Recruitment Management Software?What is a Recruitment Management Software?
What is a Recruitment Management Software?
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
 
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with GraphGraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 

Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA Patterns

  • 1. Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA Patterns Qurat ul ain Ali1, Benedek Horváth2,3, Dimitris Kolovos1, Konstantinos Barmpis1, Ákos Horváth2 1 University of York, York, UK 2 IncQuery Labs cPlc., Budapest, Hungary 3 Johannes Kepler University Linz, Linz, Austria Contact: Benedek.Horvath@incquerylabs.com
  • 2. Validation of Low-Code System Models • Low-code platforms adopt Model-Driven Engineering concepts • Large software system models • Model correctness is essential • Scalable cloud resources → $$$ 2 SOTA model validation engines should adapt to these needs
  • 3. Cyber-Physical Systems Simulation • Integrated CPS simulation for industry 4.0 • Queries on continuously changing runtime models 3 SOTA model query engines should adapt to these needs [1] Márton Búr, Gábor Szilágyi, András Vörös, Dániel Varró: Distributed graph queries over models@run.time for runtime monitoring of cyber-physical systems. Int. J. Softw. Tools Technol. Transf. 22(1): 79-102 (2020) Figure source: [1]
  • 4. Epsilon 4 • Epsilon – a family of languages for MDE: • EOL: model queries • EVL: model validation • Model connectivity (EMC): to access the models Epsilon live: https://www.eclipse.org/epsilon/live/
  • 5. Viatra 5 •Declarative graph query language •Transitive closure, negation cond., etc. •Compositional, reusable •Local + Global queries Definition •Incremental evaluation •Cache result set (RETE networks) •Maintain incrementally upon model change •Local search-based evaluation Execution •On-the-fly validation, •Works out-of-the-box with EMF applications, •View generation, •Derived features. Tooling •AUTOSAR case study •3 tools compared (Java, MDT-OCL, IncQuery) •Scalability measurements •Load + query •Manipulate + re-check •Up to 1.5 million elements Experiments https://www.eclipse.org/viatra/
  • 6. Validation Rule Execution in Sequential EVL • For each Variable Declaration • Check if there is a Single Variable Access • Whose variable reference refers to it • O (|Variable Declaration| x |Single Variable Access| ) • Can be expensive if: • Single Variable Access is not cached • Model changes and rules should be reevaluated 6 Viatra with incremental query engine
  • 7. Overview of the Approach EVL validation program Translate constraints to VQL patterns Evaluate the constraints by calling Viatra Show results in Epsilon Phase I Phase II Phase III 7
  • 8. Running Example 8 Java metamodel (MoDisco) excerpt EVL constraint VQL pattern
  • 9. Proposed Workflow 9 Phase I Phase II Phase III
  • 10. Query Translations EOL expression VQL pattern Matcher API call Java!NamedElement.all.selectOne(u|u.name="main") Java!NamedElement.all.exists(u|u.name="main") Java!NamedElement.all.one(u|u.name="main") Java!NamedElement.all.none(u|u.name="main") Java!NamedElement.all.count(u|u.name="main") Java!NamedElement.all.nMatch(u|u.name="main",2) Java!NamedElement.all.atLeastNMatch(u|u.name="main",1) Java!NamedElement.all.atMostNMatch(u|u.name="main",1) pattern Java1(ne: NamedElement) { NamedElement.name(ne, "main"); } oneArbitraryMatch hasMatch countMatches == 1 countMatches == 0 countMatches countMatches == 2 countMatches >= 1 countMatches <= 1 Java!NamedElement.all.reject(u|u.name="main") Java!NamedElement.all.forAll(u|u.name="main") pattern Java1(ne: NamedElement) { neg find Java1internal(ne); } pattern Java1internal(ne: NamedElement) { NamedElement.name(ne, "main"); } allMatches hasMatch == false 10
  • 11. Benchmarks • MoDisco EMF model of the Eclipse source code [4] • FindBugs validation rules in EVL • Compared performance of: • Incremental Viatra engine (RETE) • Local search based Viatra engine (LS) • Sequential EVL engine • Measured execution time, memory use of the engines 11
  • 12. Evaluation • Shortest execution time: RETE • Longest execution time: Sequential EVL • Local search engine with base index ~ RETE • Highest memory use: RETE • Lowest memory use: Sequential EVL • Local search engine with base index ~ RETE 12 94 92 88 49 141 133 126 80 284 268 243 183 0 50 100 150 200 250 300 RETE LS with base index LS without base index Sequential EVL Memory use (MB) Engine name Memory use of the engines 100k 200k 500k 0.94 1.35 205.72 205.99 1.77 2.49 883.91 955.62 4.32 6.06 93.19 6390.36 0.10 1.00 10.00 100.00 1000.00 10000.00 RETE LS with base index LS without base index Sequential EVL Execution time (s) Engine name Execution time of the engines 100k 200k 500k
  • 13. Lessons Learnt • Performance of sequential EVL engine can be improved by Viatra • Incremental engine speeded-up the execution by 1481x • Duration of the query translation is negligible • https://github.com/lowcomote/evl-viatra-prototype Limitations: • First-order operations on all instances of model elements • Single-value references, attributes • Integrated to EOL, EVL 13
  • 14. Future Work • Integrate to Epsilon Transformation and Pattern Languages • Extend supported elements: • Multi-value references • User-defined operations • Performance comparisons with the parallel EVL engine [5] 14
  • 15. Acknowledgements • This work is partially funded by the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 813884, • and the National Research, Development and Innovation Fund of Hungary, financed under the 2019-2.1.1-EUREKA-2019-00001 funding scheme. • The authors are grateful for the valuable feedback of Géza Kulcsár and the anonymous reviewers about the paper. 15
  • 16. References [1] Márton Búr, Gábor Szilágyi, András Vörös, Dániel Varró: Distributed graph queries over models@run.time for runtime monitoring of cyber-physical systems. Int. J. Softw. Tools Technol. Transf. 22(1): 79-102 (2020) [2] Dániel Varró, Gábor Bergmann, Ábel Hegedüs, Ákos Horváth, István Ráth, Zoltán Ujhelyi: Road to a reactive and incremental model transformation platform: three generations of the VIATRA framework. Softw. Syst. Model. 15(3): 609-629 (2016) [3] Charles Forgy: Rete: A Fast Algorithm for the Many Patterns/Many Objects Match Problem. Artif. Intell. 19(1): 17-37 (1982) [4] http://atenea.lcc.uma.es/projects/LinTra.html [5] Sina Madani, Dimitrios S. Kolovos, Richard F. Paige: Parallel Model Validation with Epsilon. ECMFA 2018: 115-131 16