SlideShare a Scribd company logo
1 of 22
Code-First Model-Driven Engineering:
On the Agile Adoption of MDE
Artur Boronat
ASE’19. San Diego, CA, USA.
Application Domain Model (DDD)
Code-First Approach
VALUE = WORKING SOFTWARE
[Landre et al. OOPSLA’07]CONS: NOT SYSTEMATIC
DDD experts required
?
scattered knowledge
PROS: PRAGMATIC
Application Domain Model (MDE)
Model-First Approach (MDE) VALUE = KNOWLEDGE
PROS: SYSTEMATIC
Application Domain Model (MDE)
Model-First Approach (MDE) VALUE = KNOWLEDGE
PROS: SYSTEMATIC
By 2024, low-code application
development will be responsible
for more than 65% of application
development activity.
[Gartner, August 2019]
Application Domain Model (MDE)
Model-First Approach (MDE) VALUE = KNOWLEDGE
PROS: SYSTEMATIC
CONS: HEAVYWEIGHT
MDE experts required
[Seybold et al. SLE’16]
[Hutchinson et al. ICSE’11]
code
[Whittle et al. MODELS’13]
models more agility required
Combination of both? Code-First MDE
TCP-DS benchmark
SQL queries
Customers who have returned items more than 20% more
often than the average customer returns for a store in the
state TN for the year 2000
JPA
Java
OCL-like queries
Eclipse
Modeling
Framework
(EMF)model?
?
data?
Code-First MDE: Contributions
MDE-agnostic MDE-aware
synchronizer
Empirical evaluation:
• Overhead
• Scalability
M1
M0
system state view
app domain model view model
Synchronization model
(EMF-Syncer):
• model@runtime
• backward
compatible
• incremental
Feature-oriented
algebraic
conceptualization:
• modeling in MDE
agile sw dev
• cherry picking
Feature-Oriented
Conceptualization
Syncing Model
EMF-Syncer
Overhead and
Scalability
View update problem
[Foster et al. POPL’05]
Code-First MDE: ContributionsFeature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
MDE-agnostic MDE-aware
synchronizer
M1
M0
system state view
app domain model view model
View update problem
[Foster et al. POPL’05]
Feature-Oriented Algebraic Framework
Feature types
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
Feature Values
Feature-Oriented Algebraic Framework
Feature types
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
Feature Values
Multiplicity
Order
Uniqueness
Containment (composition)
Bidirectionality
Explicit design decisions
Feature-Oriented Algebraic Framework
Feature types
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
Feature Values
Multiplicity
Order
Uniqueness
Containment (composition)
Bidirectionality
Explicit design decisions
Update space
Atomic actions
Type preservation:
Multiplicity constraints
Bidirectional reference integrity
Containment integrity
Delete cascade semantics
Assumptions
View Update Problem and Our Solution
system states views
app domain model view model
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
migration
Use cases
a) View model is already given
b) View model is reified from
code
reification
View update problem
Updating system
snapshot or view creates
inconsistencies
[Foster et al. POPL’05]
View Update Problem and Our Solution
system states views
app domain model view model
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
syncing
policy
syncing
Syncing policy
graph isomorphism up to
feature renaming
Reversible
View Update Problem and Our Solution
system states views
app domain model view model
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
syncing
policy
syncing
Syncing policy
graph isomorphism up to
feature renaming
Reversible
EMF-Syncer
system state
app domain model view model
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
syncing
policy
view
syncingsyncing
Java EMF
Initial stage: synchronization on demand
1.Initialization of objects
EMF-Syncer
system state
app domain model view model
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
syncing
policy
syncing
view
Java EMF
Initial stage: synchronization on demand
1. Initialization of objects
2. On-demand synchronization feature
values
EMF-Syncer
system state
app domain model view model
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
syncing
policy
syncing
view
Java EMF
Initial stage: synchronization on demand
Incremental propagation stage:
1. On-demand synchronization for update
EMF-Syncer
system state
app domain model view model
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
syncing
policy
view
Java EMF
Initial stage: synchronization on demand
Incremental propagation stage:
1. On-demand synchronization for update
2. Update
EMF-Syncer
system state
app domain model view model
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
syncing
policy
Initial stage: synchronization on demand
Incremental propagation stage:
1. On-demand synchronization for update
2. Update
3. Backward propagation
Java EMF
syncing
view
Queries (overhead/scalability)
2 4 8 16
EMF 1st EMF 2nd
1
10
100
1000
10000
100000
0.0625 0.125 0.25 0.5 1 2 4 8 16
Time(ms.)
Size factor
Q3
SQL Java 1st Java 2nd EMF 1st EMF 2nd
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
SQL
EMF 1st
EMF 2nd
BIG DATA ANALYSIS
Time (ms.)
Size factor
TPC-DS benchmark
Java port that allows for no sexism
Experiments run on standard laptop
Synchronization mechanism (overhead/scalability)
0.01
0.1
1
10
100
1000
10000
55 84 167 333 664 1,288 2,527 5,007 9,408
Time(ms.)
Reference model size (in thousands of objects)
Baseline Q1_Initialization Q1_Backward Q2_Initialization Q3_Initialization Q3_Backward
Feature-Oriented
Conceptualization
SyncingModel
EMF-Syncer
Overhead
Scalability
baseline
Q3
initialization
propagation
Conclusions
Reasonable overhead
Millions of objects
Models@runtime
Backward compatible
Deferred initialization
and incremental prop
Reification harnesses
modeling practices
Cherry picking tools:
gradual MDE adoption
Feature-oriented
algebraic
framework
Syncing Model
EMF-Syncer
Overhead and
Scalability 0.0001
0.0010
0.0100
0.1000
1.0000
10.0000
100.0000
1000. 0000
10000.0000
0.0625 0.125 0.25 0.5 1 2 4 8 16
Time(ms.)
Size factor
Q1
SQL Java 1st Java 2nd EMF 1st EMF 2nd
10
100
1000
10000
100000
0.0625 0.125 0.25 0.5 1 2 4 8 16
Time(ms.)
Size factor
Q2
SQL Java 1st Java 2nd EMF 1st EMF 2nd
1
10
100
1000
10000
100000
0.0625 0.125 0.25 0.5 1 2 4 8 16
Time(ms.)
Size factor
Q3
SQL Java 1st Java 2nd EMF 1st EMF 2nd
system states views
app domain model view model
syncing
policy
syncing
Code-First Model-Driven Engineering:
On the Agile Adoption of MDE
Artur BoronatASE’19. San Diego, CA, USA.
Experiments: http://bit.ly/emf-syncer-tcpds
0.01
0.1
1
10
100
1000
10000
55 84 167 333 664 1,288 2,527 5,007 9,408
Time(ms.)
Reference model size (in thousands of objects)
Baseline Q1_Initialization Q1_Backward Q2_Initialization Q3_Initialization Q3_Backward
mainstreamtechnology
MDEtechnology

More Related Content

Similar to Code-First MDE Brings Agile Adoption

A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data CenterA Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data CenterAtlassian
 
Application Model for Cloud Deployment
Application Model for Cloud DeploymentApplication Model for Cloud Deployment
Application Model for Cloud DeploymentJim Kaskade
 
Scalable constrained spectral clustering
Scalable constrained spectral clusteringScalable constrained spectral clustering
Scalable constrained spectral clusteringNishanth Harapanahalli
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Sreeni Pamidala
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz QuestionsGanesh Samarthyam
 
How to Optimize Your MERN Stack Application Performance_ Complete Guide 2023.pdf
How to Optimize Your MERN Stack Application Performance_ Complete Guide 2023.pdfHow to Optimize Your MERN Stack Application Performance_ Complete Guide 2023.pdf
How to Optimize Your MERN Stack Application Performance_ Complete Guide 2023.pdfElsner Technologies Pvt. Ltd.
 
7 steps to Enterprise PaaS
7 steps to Enterprise PaaS7 steps to Enterprise PaaS
7 steps to Enterprise PaaSVMware vFabric
 
Web-Based System for Software Requirements Quality Analysis Using Case-Based ...
Web-Based System for Software Requirements Quality Analysis Using Case-Based ...Web-Based System for Software Requirements Quality Analysis Using Case-Based ...
Web-Based System for Software Requirements Quality Analysis Using Case-Based ...IOSR Journals
 
An ATM with an Eye.pptx
An ATM with an Eye.pptxAn ATM with an Eye.pptx
An ATM with an Eye.pptxVAMSYKRISHNA32
 
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!Gemma Catolino
 
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...Amit Sheth
 
Raymond V. Joos resume
Raymond V. Joos resumeRaymond V. Joos resume
Raymond V. Joos resumeJoos Ray
 
Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Sandro Mancuso
 
The Fast Path to Building a Private Cloud (With Guest Speaker from Forrester ...
The Fast Path to Building a Private Cloud (With Guest Speaker from Forrester ...The Fast Path to Building a Private Cloud (With Guest Speaker from Forrester ...
The Fast Path to Building a Private Cloud (With Guest Speaker from Forrester ...RightScale
 
Syllabus for Technical courses
Syllabus for Technical coursesSyllabus for Technical courses
Syllabus for Technical coursesMontek1Learning
 

Similar to Code-First MDE Brings Agile Adoption (20)

A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data CenterA Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
 
Application Model for Cloud Deployment
Application Model for Cloud DeploymentApplication Model for Cloud Deployment
Application Model for Cloud Deployment
 
Resume debasish
Resume debasish Resume debasish
Resume debasish
 
Scalable constrained spectral clustering
Scalable constrained spectral clusteringScalable constrained spectral clustering
Scalable constrained spectral clustering
 
Project report
Project report Project report
Project report
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz Questions
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz Questions
 
How to Optimize Your MERN Stack Application Performance_ Complete Guide 2023.pdf
How to Optimize Your MERN Stack Application Performance_ Complete Guide 2023.pdfHow to Optimize Your MERN Stack Application Performance_ Complete Guide 2023.pdf
How to Optimize Your MERN Stack Application Performance_ Complete Guide 2023.pdf
 
AnikResume
AnikResumeAnikResume
AnikResume
 
7 steps to Enterprise PaaS
7 steps to Enterprise PaaS7 steps to Enterprise PaaS
7 steps to Enterprise PaaS
 
Web-Based System for Software Requirements Quality Analysis Using Case-Based ...
Web-Based System for Software Requirements Quality Analysis Using Case-Based ...Web-Based System for Software Requirements Quality Analysis Using Case-Based ...
Web-Based System for Software Requirements Quality Analysis Using Case-Based ...
 
An ATM with an Eye.pptx
An ATM with an Eye.pptxAn ATM with an Eye.pptx
An ATM with an Eye.pptx
 
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!
 
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
 
Srinivasaragavan Jayakumar
Srinivasaragavan JayakumarSrinivasaragavan Jayakumar
Srinivasaragavan Jayakumar
 
Raymond V. Joos resume
Raymond V. Joos resumeRaymond V. Joos resume
Raymond V. Joos resume
 
Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014
 
The Fast Path to Building a Private Cloud (With Guest Speaker from Forrester ...
The Fast Path to Building a Private Cloud (With Guest Speaker from Forrester ...The Fast Path to Building a Private Cloud (With Guest Speaker from Forrester ...
The Fast Path to Building a Private Cloud (With Guest Speaker from Forrester ...
 
Syllabus for Technical courses
Syllabus for Technical coursesSyllabus for Technical courses
Syllabus for Technical courses
 

More from Artur Boronat

Managing model-to-model transformations at scale with YAMTL (lowcomote)
Managing model-to-model transformations at scale with YAMTL (lowcomote)Managing model-to-model transformations at scale with YAMTL (lowcomote)
Managing model-to-model transformations at scale with YAMTL (lowcomote)Artur Boronat
 
Offline Delta-Driven Model Transformation with Dependency Injection
Offline Delta-Driven Model Transformation with Dependency InjectionOffline Delta-Driven Model Transformation with Dependency Injection
Offline Delta-Driven Model Transformation with Dependency InjectionArtur Boronat
 
Expressive and Efficient Model Transformation with an Internal DSL of Xtend
Expressive and Efficient Model Transformation with an Internal DSL of XtendExpressive and Efficient Model Transformation with an Internal DSL of Xtend
Expressive and Efficient Model Transformation with an Internal DSL of XtendArtur Boronat
 
A Formal Framework for Prototyping Executable Semantics in ATL
A Formal Framework for Prototyping Executable Semantics in ATLA Formal Framework for Prototyping Executable Semantics in ATL
A Formal Framework for Prototyping Executable Semantics in ATLArtur Boronat
 
Structural Model Subtyping with OCL Constraints
Structural Model Subtyping with OCL ConstraintsStructural Model Subtyping with OCL Constraints
Structural Model Subtyping with OCL ConstraintsArtur Boronat
 
Experimentation with a Big-Step Semantics for ATL Model Transformations
Experimentation with a Big-Step Semantics for ATL Model TransformationsExperimentation with a Big-Step Semantics for ATL Model Transformations
Experimentation with a Big-Step Semantics for ATL Model TransformationsArtur Boronat
 

More from Artur Boronat (6)

Managing model-to-model transformations at scale with YAMTL (lowcomote)
Managing model-to-model transformations at scale with YAMTL (lowcomote)Managing model-to-model transformations at scale with YAMTL (lowcomote)
Managing model-to-model transformations at scale with YAMTL (lowcomote)
 
Offline Delta-Driven Model Transformation with Dependency Injection
Offline Delta-Driven Model Transformation with Dependency InjectionOffline Delta-Driven Model Transformation with Dependency Injection
Offline Delta-Driven Model Transformation with Dependency Injection
 
Expressive and Efficient Model Transformation with an Internal DSL of Xtend
Expressive and Efficient Model Transformation with an Internal DSL of XtendExpressive and Efficient Model Transformation with an Internal DSL of Xtend
Expressive and Efficient Model Transformation with an Internal DSL of Xtend
 
A Formal Framework for Prototyping Executable Semantics in ATL
A Formal Framework for Prototyping Executable Semantics in ATLA Formal Framework for Prototyping Executable Semantics in ATL
A Formal Framework for Prototyping Executable Semantics in ATL
 
Structural Model Subtyping with OCL Constraints
Structural Model Subtyping with OCL ConstraintsStructural Model Subtyping with OCL Constraints
Structural Model Subtyping with OCL Constraints
 
Experimentation with a Big-Step Semantics for ATL Model Transformations
Experimentation with a Big-Step Semantics for ATL Model TransformationsExperimentation with a Big-Step Semantics for ATL Model Transformations
Experimentation with a Big-Step Semantics for ATL Model Transformations
 

Recently uploaded

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
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
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
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.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
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
 
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
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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
 
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
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
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
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 

Recently uploaded (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
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
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
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...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
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
 
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 ...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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
 
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...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
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
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 

Code-First MDE Brings Agile Adoption

  • 1. Code-First Model-Driven Engineering: On the Agile Adoption of MDE Artur Boronat ASE’19. San Diego, CA, USA.
  • 2. Application Domain Model (DDD) Code-First Approach VALUE = WORKING SOFTWARE [Landre et al. OOPSLA’07]CONS: NOT SYSTEMATIC DDD experts required ? scattered knowledge PROS: PRAGMATIC
  • 3. Application Domain Model (MDE) Model-First Approach (MDE) VALUE = KNOWLEDGE PROS: SYSTEMATIC
  • 4. Application Domain Model (MDE) Model-First Approach (MDE) VALUE = KNOWLEDGE PROS: SYSTEMATIC By 2024, low-code application development will be responsible for more than 65% of application development activity. [Gartner, August 2019]
  • 5. Application Domain Model (MDE) Model-First Approach (MDE) VALUE = KNOWLEDGE PROS: SYSTEMATIC CONS: HEAVYWEIGHT MDE experts required [Seybold et al. SLE’16] [Hutchinson et al. ICSE’11] code [Whittle et al. MODELS’13] models more agility required
  • 6. Combination of both? Code-First MDE TCP-DS benchmark SQL queries Customers who have returned items more than 20% more often than the average customer returns for a store in the state TN for the year 2000 JPA Java OCL-like queries Eclipse Modeling Framework (EMF)model? ? data?
  • 7. Code-First MDE: Contributions MDE-agnostic MDE-aware synchronizer Empirical evaluation: • Overhead • Scalability M1 M0 system state view app domain model view model Synchronization model (EMF-Syncer): • model@runtime • backward compatible • incremental Feature-oriented algebraic conceptualization: • modeling in MDE agile sw dev • cherry picking Feature-Oriented Conceptualization Syncing Model EMF-Syncer Overhead and Scalability View update problem [Foster et al. POPL’05]
  • 8. Code-First MDE: ContributionsFeature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability MDE-agnostic MDE-aware synchronizer M1 M0 system state view app domain model view model View update problem [Foster et al. POPL’05]
  • 9. Feature-Oriented Algebraic Framework Feature types Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability Feature Values
  • 10. Feature-Oriented Algebraic Framework Feature types Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability Feature Values Multiplicity Order Uniqueness Containment (composition) Bidirectionality Explicit design decisions
  • 11. Feature-Oriented Algebraic Framework Feature types Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability Feature Values Multiplicity Order Uniqueness Containment (composition) Bidirectionality Explicit design decisions Update space Atomic actions Type preservation: Multiplicity constraints Bidirectional reference integrity Containment integrity Delete cascade semantics Assumptions
  • 12. View Update Problem and Our Solution system states views app domain model view model Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability migration Use cases a) View model is already given b) View model is reified from code reification View update problem Updating system snapshot or view creates inconsistencies [Foster et al. POPL’05]
  • 13. View Update Problem and Our Solution system states views app domain model view model Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability syncing policy syncing Syncing policy graph isomorphism up to feature renaming Reversible
  • 14. View Update Problem and Our Solution system states views app domain model view model Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability syncing policy syncing Syncing policy graph isomorphism up to feature renaming Reversible
  • 15. EMF-Syncer system state app domain model view model Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability syncing policy view syncingsyncing Java EMF Initial stage: synchronization on demand 1.Initialization of objects
  • 16. EMF-Syncer system state app domain model view model Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability syncing policy syncing view Java EMF Initial stage: synchronization on demand 1. Initialization of objects 2. On-demand synchronization feature values
  • 17. EMF-Syncer system state app domain model view model Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability syncing policy syncing view Java EMF Initial stage: synchronization on demand Incremental propagation stage: 1. On-demand synchronization for update
  • 18. EMF-Syncer system state app domain model view model Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability syncing policy view Java EMF Initial stage: synchronization on demand Incremental propagation stage: 1. On-demand synchronization for update 2. Update
  • 19. EMF-Syncer system state app domain model view model Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability syncing policy Initial stage: synchronization on demand Incremental propagation stage: 1. On-demand synchronization for update 2. Update 3. Backward propagation Java EMF syncing view
  • 20. Queries (overhead/scalability) 2 4 8 16 EMF 1st EMF 2nd 1 10 100 1000 10000 100000 0.0625 0.125 0.25 0.5 1 2 4 8 16 Time(ms.) Size factor Q3 SQL Java 1st Java 2nd EMF 1st EMF 2nd Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability SQL EMF 1st EMF 2nd BIG DATA ANALYSIS Time (ms.) Size factor TPC-DS benchmark Java port that allows for no sexism Experiments run on standard laptop
  • 21. Synchronization mechanism (overhead/scalability) 0.01 0.1 1 10 100 1000 10000 55 84 167 333 664 1,288 2,527 5,007 9,408 Time(ms.) Reference model size (in thousands of objects) Baseline Q1_Initialization Q1_Backward Q2_Initialization Q3_Initialization Q3_Backward Feature-Oriented Conceptualization SyncingModel EMF-Syncer Overhead Scalability baseline Q3 initialization propagation
  • 22. Conclusions Reasonable overhead Millions of objects Models@runtime Backward compatible Deferred initialization and incremental prop Reification harnesses modeling practices Cherry picking tools: gradual MDE adoption Feature-oriented algebraic framework Syncing Model EMF-Syncer Overhead and Scalability 0.0001 0.0010 0.0100 0.1000 1.0000 10.0000 100.0000 1000. 0000 10000.0000 0.0625 0.125 0.25 0.5 1 2 4 8 16 Time(ms.) Size factor Q1 SQL Java 1st Java 2nd EMF 1st EMF 2nd 10 100 1000 10000 100000 0.0625 0.125 0.25 0.5 1 2 4 8 16 Time(ms.) Size factor Q2 SQL Java 1st Java 2nd EMF 1st EMF 2nd 1 10 100 1000 10000 100000 0.0625 0.125 0.25 0.5 1 2 4 8 16 Time(ms.) Size factor Q3 SQL Java 1st Java 2nd EMF 1st EMF 2nd system states views app domain model view model syncing policy syncing Code-First Model-Driven Engineering: On the Agile Adoption of MDE Artur BoronatASE’19. San Diego, CA, USA. Experiments: http://bit.ly/emf-syncer-tcpds 0.01 0.1 1 10 100 1000 10000 55 84 167 333 664 1,288 2,527 5,007 9,408 Time(ms.) Reference model size (in thousands of objects) Baseline Q1_Initialization Q1_Backward Q2_Initialization Q3_Initialization Q3_Backward mainstreamtechnology MDEtechnology

Editor's Notes

  1. Advantages Immediate feedback on system (better communication) Continuous delivery: no layers of indirection, product build iteratively and incrementally The model is in the code: PLs are including modeling abstractions (classes, lambdas…) PRAGMATIC Drawbacks Knowledge scattered in code: design emerges from each iteration via re-factoring Yet programming languages are not modeling languages: less concise, less expressive Expertise is also required for embedding a domain model in code NOT SYSTEMATIC
  2. VALUE = KNOWLEDGE Advantages Communication Explicit models Systematic (and automated) sw development: SYSTEMATIC Drawbacks Syncing models and code Heavyweight sw frameworks Specialized expertise required Hutchinson: change of mentality - progressive iterative NOT PRACTICAL
  3. VALUE = KNOWLEDGE Advantages Communication Explicit models Systematic (and automated) sw development: SYSTEMATIC Drawbacks Syncing models and code Heavyweight sw frameworks Specialized expertise required Hutchinson: change of mentality - progressive iterative NOT PRACTICAL
  4. VALUE = KNOWLEDGE Advantages Communication Explicit models Systematic (and automated) sw development: SYSTEMATIC Drawbacks Syncing models and code Heavyweight sw frameworks Specialized expertise required Hutchinson: change of mentality - progressive iterative NOT PRACTICAL
  5. Intro to benchmark Modeling SDK for Visual Studio - Domain-Specific Languages https://docs.microsoft.com/en-us/visualstudio/modeling/modeling-sdk-for-visual-studio-domain-specific-languages?view=vs-2019
  6. Key message: what is missing
  7. Backward-compatible at service level EMF lock-in for implementation
  8. Access model written manually Backward compatibility Models@runtime Experiments with sizes of 1000 objects Approaches to apply MDE tooling (Challenges to MDE tooling adoption) Reverse engineering Adaptation (static and run time)
  9. Assumption OO domain model can be extracted or projected from code Contributions on the left Algebraic conceptualization for transferring results from algebra to software engineering/conceptual modeling Feature-oriented Enriching domain models with a richer modeling language Synchronization model No adaptation required: metamodel-independent, focus on reuse straightaway Ensures backward compatibility Models@runtime: views can be obtained and updated at run-time (view model must be present) Incremental on-demand syncing mechanism at feature level Empirical evaluation with millions of objects: overhead and scalability Assumptions: OO domain model (EMF?) Synchronization policy by name
  10. Contributions on the right Algebraic conceptualization for transferring results from algebra to software engineering/conceptual modeling Feature-oriented Synchronization model No adaptation required: metamodel-independent, focus on reuse straightaway Ensures backward compatibility Models@runtime: views can be obtained and updated at run-time (view model must be present) Incremental on-demand syncing mechanism at feature level Empirical evaluation with millions of objects: overhead and scalability Assumptions: OO domain model (EMF?) Synchronization policy by name
  11. Conceptualization allows to enrich domain models Feature type:f_m: c \rightarrow t Feature value: f : o \mapsto v_i Update: (\{\mathit{upset},\mathit{delete}\} \times f_m: c \rightarrow t), (\Delta,\cdot)
  12. Conceptualization allows to enrich domain models Feature type:f_m: c \rightarrow t Feature value: f : o \mapsto v_i Update: (\{\mathit{upset},\mathit{delete}\} \times f_m: c \rightarrow t), (\Delta,\cdot)
  13. Conceptualization allows to enrich domain models Feature type:f_m: c \rightarrow t Feature value: f : o \mapsto v_i Update: (\{\mathit{upset},\mathit{delete}\} \times f_m: c \rightarrow t), (\Delta,\cdot)
  14. Conceptualization allows to enrich domain models Feature type:f_m: c \rightarrow t Feature value: f : o \mapsto v_i Update: (\{\mathit{upset},\mathit{delete}\} \times f_m: c \rightarrow t), (\Delta,\cdot)
  15. Contributions on the right Algebraic conceptualization for transferring results from algebra to software engineering/conceptual modeling Feature-oriented Synchronization model No adaptation required: metamodel-independent, focus on reuse straightaway Ensures backward compatibility Models@runtime: views can be obtained and updated at run-time (view model must be present) Incremental on-demand syncing mechanism at feature level Empirical evaluation with millions of objects: overhead and scalability Assumptions: OO domain model (EMF?) Synchronization policy by name
  16. Syncing policy defines consistency relation between domain model and view model
  17. Syncing policy defines consistency relation between domain model and view model
  18. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  19. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  20. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  21. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  22. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  23. TPC-CS benchmark Correctness cross-checked with SQL Loading: SQL via JPA only returns ids, Java/EMF loading not considered (Java objects are assumed to be in memory) Sizes, why the table StoreReturns RQ1: Does the time overhead imposed by the synchronization algorithms, both during the initial phase and during the incremental propagation phase, hinder the pragmatism of the approach? RQ2: Does the synchronization algorithm scale well with respect to the size of the given data set in the Java application?
  24. Model sizes Why is Java more efficient than SQL? contextual information is already available in memory for evaluating the query whereas SQL queries have to traverse very large tables in the database to find that initial context. EMF-SYNCER introduces some overhead when computing queries over EMF objects when comparing the same queries over Java objects : instrumentation in EMF code performed by EMF-SYNCER
  25. Initial syncing linear on the size of the model and propagation linear on the size of the update Unit of data is feature values and not object (so model sizes help in comparing the approach to other benchmarks but one has to consider the density of feature values in an object)
  26. Framework: Cherry picking tools: facilitates creativity and gradual adoption of MDE Experiments: millions of objectshttp://bit.ly/emf-syncer-tcpds
  27. Model sizes Why is Java more efficient than SQL? contextual information is already available in memory for evaluating the query whereas SQL queries have to traverse very large tables in the database to find that initial context. EMF-SYNCER introduces some overhead when computing queries over EMF objects when comparing the same queries over Java objects : instrumentation in EMF code performed by EMF-SYNCER
  28. DDD Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Principles behind the Agile Manifesto We follow these principles:Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
  29. DDD Diagrams as communication tool, the model is the code Needs to be visual: what is MDE? Why is it worth it?
  30. Contributions on the right Algebraic conceptualization for transferring results from algebra to software engineering/conceptual modeling Feature-oriented Synchronization model No adaptation required: metamodel-independent, focus on reuse straightaway Ensures backward compatibility Models@runtime: views can be obtained and updated at run-time (view model must be present) Incremental on-demand syncing mechanism at feature level Empirical evaluation with millions of objects: overhead and scalability Assumptions: OO domain model (EMF?) Synchronization policy by name
  31. Contributions on the right Algebraic conceptualization for transferring results from algebra to software engineering/conceptual modeling Feature-oriented Synchronization model No adaptation required: metamodel-independent, focus on reuse straightaway Ensures backward compatibility Models@runtime: views can be obtained and updated at run-time (view model must be present) Incremental on-demand syncing mechanism at feature level Empirical evaluation with millions of objects: overhead and scalability
  32. Contributions on the right Algebraic conceptualization for transferring results from algebra to software engineering/conceptual modeling Feature-oriented Synchronization model No adaptation required: metamodel-independent, focus on reuse straightaway Ensures backward compatibility Models@runtime: views can be obtained and updated at run-time (view model must be present) Incremental on-demand syncing mechanism at feature level Empirical evaluation with millions of objects: overhead and scalability Assumptions: OO domain model (EMF?) Synchronization policy by name
  33. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  34. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  35. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  36. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  37. Introduce EMF Syncing policy defines consistency relation between domain model and view model
  38. Introduce EMF Syncing policy defines consistency relation between domain model and view model