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

CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
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 LearningLviv Startup Club
 
How to Use Innoslate for Beginners
How to Use Innoslate for BeginnersHow to Use Innoslate for Beginners
How to Use Innoslate for BeginnersElizabeth Steiner
 
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 WebinarElizabeth Steiner
 
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 LabsIncQuery 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Ábel Hegedüs
 
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Ábel Hegedüs
 
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
 
Crafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoCrafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoJAXLondon2014
 
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 & KubeflowJan Kirenz
 
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?jgIpotiwon
 
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 productsGianmario Spacagna
 
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 WalkthroughManasi Vartak
 
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Ákos Horváth
 
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 KubernetesWeaveworks
 
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 PlatformDatabricks
 
Dependency inversion using ports and adapters
Dependency inversion using ports and adaptersDependency inversion using ports and adapters
Dependency inversion using ports and adaptersMahfuzul Haque
 
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...NECST Lab @ Politecnico di Milano
 

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

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...Daniel Varro
 
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
 
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Ákos Horváth
 
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Ákos Horváth
 
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_schoolHenry Muccini
 
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 CloudSERENEWorkshop
 
SSBSE 2020 keynote
SSBSE 2020 keynoteSSBSE 2020 keynote
SSBSE 2020 keynoteShiva Nejati
 
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.pptAnirbanBhar3
 
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Ákos Horváth
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 WebinarIstvan Rath
 
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Ákos Horváth
 
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
 
Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsLightbend
 
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.pptxDeepakJangid87
 
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...Modelon
 
EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012Istvan Rath
 
High-performance model queries
High-performance model queriesHigh-performance model queries
High-performance model queriesIstvan Rath
 
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 weili_at_slideshare
 

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

IncQuery_presentation_Incose_EMEA_WSEC.pptx
IncQuery_presentation_Incose_EMEA_WSEC.pptxIncQuery_presentation_Incose_EMEA_WSEC.pptx
IncQuery_presentation_Incose_EMEA_WSEC.pptxIncQuery Labs
 
IncQuery-Integrate22-20220607.pdf
IncQuery-Integrate22-20220607.pdfIncQuery-Integrate22-20220607.pdf
IncQuery-Integrate22-20220607.pdfIncQuery Labs
 
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 20220310IncQuery Labs
 
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 Labs
 
IncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IWIncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IWIncQuery Labs
 
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...IncQuery Labs
 
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 MethodsIncQuery Labs
 
IncQuery Labs Models 2020 MIP Talk
IncQuery Labs Models 2020 MIP TalkIncQuery Labs Models 2020 MIP Talk
IncQuery Labs Models 2020 MIP TalkIncQuery Labs
 
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...IncQuery Labs
 
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...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

Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

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