SlideShare ist ein Scribd-Unternehmen logo
1 von 31
MDSD Scaffolding and Cédric Vidal, ProxiAD Friday 10th July 2009 Version 1.0
Who are we ? ProxiADGroup SSII specialized in objectorienteddevelopment Dedicatedingenieringprocess industrialisation team Using MDA since 2004 on J2EE projects Cédric Vidal J2EE & MDA Architect ProxiAD IDF Technical Leader
Agenda WhatisScaffolding ? Scaffolding in software Scaffoldingapplied to MDSD MDSD Scaffoldingapproaches Acceleo MTL Demo Benefits Links
Whatisscaffolding ? Scaffolds are temporary structures that physically support workers while they complete jobs that would otherwise be impossible(HH93, p138)
Scaffolding in software Ruby on Rails *Rails scriptingframeworksbringblazingfastproductivity in theirownspecifictechnologicalspace MainlythroughScaffolding !
Ruby on Rails Scaffolding Meta-Programming Scaffoldingworksat the code level Scaffoldingengineoperates on code as a model Can beeither Static : on demand Dynamic : transparently on yourbehalf Entity.rb DAO.rb
Others Ruby On Rails Grails Spring ROO Play! CakePHP Monorail Symfony …
What’s the point ? Model-Drivenbringsquality, durability, maintainability What about productivity ? Code generationtemplateswritingalready productive withAcceleo (old and MTL) Goal: Enhancemodelingproductivity
Objective Achievebothquality AND productivity BringScaffolding to Modeling
WhatisScaffoldingapplied to Modeling ? Creating partial model structures on behalf of the designer that hewouldotherwise have to create by himself
Model Scaffoldingtaxonomy Blind versus In-PlaceScaffolding Static versus DynamicScaffolding The greener the better
Model Scaffoldingtaxonomy Classical code generation Compensated code generation « Blind » scaffolding « In-Place » scaffolding Eachstatic or dynamic
Sampleproblemdomain 3-Tiers Architecture DSL containing concepts Entity DAO Service Java code isgenerated Légende Entity or DAO File Service Generation Reference Model separation Color code Hand-written Scaffolded Generated
Classical code generation 1/2 Entities are modeled Entity and DAO source codes are generatedfrom the modeledEntity Problem: What if youwant to definequeries in your model ? Model Entity Text DAO.java Entity.java
Classical code generation 2/2 Entity and DAOs are modeled Entity source code isgeneratedfrom the modeledEntity DAO source code isgeneratedfrommodeled DAO DAOswhich are not modeled are not generated Problem: You need to define all DAOs… Eventhosethatonly do CRUD Model DAO Entity Text DAO.java Entity.java
Compensated code generation Source code isstillgeneratedfor modeledelements For Entitieswhich have no modeled  DAO, wecompensate by generatingsource code for the DAO from the modeledEntity Advantage: Only custom DAOs are modeled Problem: DAO code generationlogicisduplicated Entity -> DAO.java DAO -> DAO.java Model Entity One DAO One Entity Two One.java TwoDAO.java Two.java OneDAO.java Text
Generation « Blind » Model Scaffolding Model i Entity Two Each model is a step in the MDSD chain An intermediatestepisintroduced Each model canonly « see » the model before Existingelements are copied as is A DAO isgenerated for eachentitywhich has no DAO Advantage: Only one DAO code generationlogic Problem: How do youreferencescaffoldedelements DAO TwoDao Entity One Model i-bis Entity Two DAO TwoDao Entity One DAO OneDao Model i+1 One.java TwoDAO.java Two.java OneDAO.java
How to referencescaffoldedelements ? The problemisillustrated by introducing a service The ‘Alpha’ service canreference the modeled DAO ‘TwoDao’ but not the scaffolded DAO ‘OneDao’ The scaffolded DAO ‘OneDao’ islocated in a model that the ‘Alpha’ service cannotsee Problem: « Blind » scaffoldingdoesn’tallowscaffoldedelementsreferencing Modèle i DAO TwoDao Entity Two Entity One Service Alpha Modèle i-bis DAO OneDao Entity One
« In-place » Model Scaffolding ‘OneDao’ DAO isscaffolded in the same model as Entity ‘One’ The DAO is « visible » withoutbeingmaterialized in the input model Advantage: Le ‘Alpha’ service canreference the scaffolded DAO ‘OneDao’ Problem: How to customize a scaffoldedelement ? Model i Entity One DAO OneDao Service Alpha Model i+1 One.java AlphaService.java OneDao.java
Takeover 1/3: Overview User cantake over scaffoldedelements The over takenelementisthenmaterialized in the input model Advantage: The DAO canbecustomized Iteration n Entity One DAO OneDao Service Alpha Iteration n+1 Entity One DAO OneDao Service Alpha
Takeover 2/3: Zoom After the DAO taking over, CRUD methods are stillscaffolded Advantage: No need to manually input previouslyscaffoldedelements DAO OneDao Iteration n Entity One Service Alpha create read update delete Iteration n+1 DAO OneDao Entity One Service Alpha create read update delete
Takeover 3/3: Customisation Iteration n+1 Let’sadd a finderfinder CRUD methods are stillscaffolded Advantage: Onlycustomizations are hand written, CRUD methods are scaffolded DAO OneDao Entity One Service Alpha create read update delete Iteration n+2 DAO OneDao Entity One Service Alpha create read update delete myFinder
Deletion 1/2: The problem Whathappens if the user deletes an element for whichelementswerescaffolded ? Scaffoldedelements must alsobedeleted Model i Entity One DAO OneDao Service Alpha Model i+1 One.java AlphaService.java OneDao.java
Deletion 2/2: solutions Need to keeptrackof scaffoldedelements Onlyreally a problemwithdynamic « in-place » scaffolding For static and/or « blind » scaffolding, scaffoldedelementscanjustbecomputed all over again
Model scaffoldingcomparison
WhatScaffoldingengine ? A model to model transformation engine ? ATL Xtend QVT Operational QVT Relational Obeo Transfo … A ruleengine ? Drools Any OO RuleEngine …
A ruleengine ?? Scaffoldingrules as production rules The model as a workingmemory Model elements as facts When a givenconditionis met, new factsare insertedintoworkingmemory Those new facts are attached to the model as new elements
Ruleenginesyncprocess Working Memory Model Entity One synchronize Entity One reference ScaffoldingRule reference DAO OneDao DAO OneDao synchronize
Droolssamplerule SampleDrools DAO scaffoldingrule
Pros and cons M2M Engine Pros Leveragesexistingskills Sametechnologicalspace Suited for staticscaffolding Cons Hard to use for dynamic « in-place » scaffolding RuleEngine Pros Nativelysuited for dynamic « in-place » scaffolding Can do staticscaffolding as well Cons Differenttechnologicalspace as the rest of the MDSD technologies Cannotleverageexistingskills and transformations
Scaffoldingdemo Dynamic « In-Place » DSL Scaffoldingdemo Uses A DSL withEntity, DAO and Service concepts An EMF.Edit editor DroolsRuleEngine as the scaffoldingengine

Weitere ähnliche Inhalte

Andere mochten auch

Internet Marketing 101: Search Marketing Basics
Internet Marketing 101: Search Marketing BasicsInternet Marketing 101: Search Marketing Basics
Internet Marketing 101: Search Marketing BasicsWhole Brain Group, LLC
 
Corcovado e Cristo Redentor
Corcovado e Cristo RedentorCorcovado e Cristo Redentor
Corcovado e Cristo RedentorLuiz Carlos Dias
 
Whitney Motor Sports - Sprint Cup 2010
Whitney Motor Sports - Sprint Cup 2010Whitney Motor Sports - Sprint Cup 2010
Whitney Motor Sports - Sprint Cup 2010cburns30
 
Active Insight Overview
Active Insight OverviewActive Insight Overview
Active Insight OverviewMike Telem
 
Ibm & Microsoft Announce Emea Merger 2010
Ibm & Microsoft Announce Emea Merger 2010Ibm & Microsoft Announce Emea Merger 2010
Ibm & Microsoft Announce Emea Merger 2010brzaaap
 
Dramatically increase revenue on verio template
Dramatically increase revenue on verio templateDramatically increase revenue on verio template
Dramatically increase revenue on verio templateJanine Soika
 
Achotels Marriott | Lancamento Imobiliário Patrimóvel
Achotels Marriott | Lancamento Imobiliário PatrimóvelAchotels Marriott | Lancamento Imobiliário Patrimóvel
Achotels Marriott | Lancamento Imobiliário PatrimóvelImóveis Lançamentos
 
Sg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam GuideSg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam Guidebrzaaap
 
Las Vegas Aficionados
Las Vegas AficionadosLas Vegas Aficionados
Las Vegas Aficionadosbrzaaap
 
Growth hacking 2014 abm presentation
Growth hacking 2014 abm presentationGrowth hacking 2014 abm presentation
Growth hacking 2014 abm presentationMike Telem
 
Active insight behavioral targeting in the cloud
Active insight behavioral targeting in the cloudActive insight behavioral targeting in the cloud
Active insight behavioral targeting in the cloudMike Telem
 
2011 07 Novartis Q2 Presentation Finanzamt Rgz
2011 07 Novartis Q2 Presentation Finanzamt Rgz2011 07 Novartis Q2 Presentation Finanzamt Rgz
2011 07 Novartis Q2 Presentation Finanzamt Rgzbrzaaap
 

Andere mochten auch (20)

Internet Marketing 101: Search Marketing Basics
Internet Marketing 101: Search Marketing BasicsInternet Marketing 101: Search Marketing Basics
Internet Marketing 101: Search Marketing Basics
 
Corcovado e Cristo Redentor
Corcovado e Cristo RedentorCorcovado e Cristo Redentor
Corcovado e Cristo Redentor
 
Whitney Motor Sports - Sprint Cup 2010
Whitney Motor Sports - Sprint Cup 2010Whitney Motor Sports - Sprint Cup 2010
Whitney Motor Sports - Sprint Cup 2010
 
Active Insight Overview
Active Insight OverviewActive Insight Overview
Active Insight Overview
 
Ibm & Microsoft Announce Emea Merger 2010
Ibm & Microsoft Announce Emea Merger 2010Ibm & Microsoft Announce Emea Merger 2010
Ibm & Microsoft Announce Emea Merger 2010
 
Dramatically increase revenue on verio template
Dramatically increase revenue on verio templateDramatically increase revenue on verio template
Dramatically increase revenue on verio template
 
28 belles photos
28 belles photos28 belles photos
28 belles photos
 
Welcome to art2trade4 1.10.11
Welcome to art2trade4 1.10.11Welcome to art2trade4 1.10.11
Welcome to art2trade4 1.10.11
 
Conhecendo a China
Conhecendo a ChinaConhecendo a China
Conhecendo a China
 
Árvores
ÁrvoresÁrvores
Árvores
 
Surfindia Automobile
Surfindia AutomobileSurfindia Automobile
Surfindia Automobile
 
Surfindia Automobile
Surfindia AutomobileSurfindia Automobile
Surfindia Automobile
 
power point
power pointpower point
power point
 
Achotels Marriott | Lancamento Imobiliário Patrimóvel
Achotels Marriott | Lancamento Imobiliário PatrimóvelAchotels Marriott | Lancamento Imobiliário Patrimóvel
Achotels Marriott | Lancamento Imobiliário Patrimóvel
 
Especial para ti
Especial para tiEspecial para ti
Especial para ti
 
Sg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam GuideSg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam Guide
 
Las Vegas Aficionados
Las Vegas AficionadosLas Vegas Aficionados
Las Vegas Aficionados
 
Growth hacking 2014 abm presentation
Growth hacking 2014 abm presentationGrowth hacking 2014 abm presentation
Growth hacking 2014 abm presentation
 
Active insight behavioral targeting in the cloud
Active insight behavioral targeting in the cloudActive insight behavioral targeting in the cloud
Active insight behavioral targeting in the cloud
 
2011 07 Novartis Q2 Presentation Finanzamt Rgz
2011 07 Novartis Q2 Presentation Finanzamt Rgz2011 07 Novartis Q2 Presentation Finanzamt Rgz
2011 07 Novartis Q2 Presentation Finanzamt Rgz
 

Ähnlich wie RMLL - Eclipse Acceleo Day - MDSD Scaffolding and Acceleo - Cédric Vidal - 1.1

Modular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Makmfrancis
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on RailsViridians
 
Modules and EmbedJS
Modules and EmbedJSModules and EmbedJS
Modules and EmbedJSJens Arps
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applicationshchen1
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)Sejong Park
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allMarc Dutoo
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWareMichael Vorburger
 
Agile Development in .NET
Agile Development in .NETAgile Development in .NET
Agile Development in .NETdanhermes
 
Handlebars and Require.js
Handlebars and Require.jsHandlebars and Require.js
Handlebars and Require.jsIvano Malavolta
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010fmadiot
 
jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture Jiby John
 
Gnizr Architecture (for developers)
Gnizr Architecture (for developers)Gnizr Architecture (for developers)
Gnizr Architecture (for developers)hchen1
 
Zend Framework And Doctrine
Zend Framework And DoctrineZend Framework And Doctrine
Zend Framework And Doctrineisaaczfoster
 

Ähnlich wie RMLL - Eclipse Acceleo Day - MDSD Scaffolding and Acceleo - Cédric Vidal - 1.1 (20)

EMF Scaffolding
EMF ScaffoldingEMF Scaffolding
EMF Scaffolding
 
Modular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Mak
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
Dao example
Dao exampleDao example
Dao example
 
Modules and EmbedJS
Modules and EmbedJSModules and EmbedJS
Modules and EmbedJS
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)
 
AhmedReda
AhmedRedaAhmedReda
AhmedReda
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Agile Development in .NET
Agile Development in .NETAgile Development in .NET
Agile Development in .NET
 
Facade pattern in rails
Facade pattern in railsFacade pattern in rails
Facade pattern in rails
 
Demystifying The Solid Works Api
Demystifying The Solid Works ApiDemystifying The Solid Works Api
Demystifying The Solid Works Api
 
Handlebars and Require.js
Handlebars and Require.jsHandlebars and Require.js
Handlebars and Require.js
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
 
jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture
 
Gnizr Architecture (for developers)
Gnizr Architecture (for developers)Gnizr Architecture (for developers)
Gnizr Architecture (for developers)
 
Zend Framework And Doctrine
Zend Framework And DoctrineZend Framework And Doctrine
Zend Framework And Doctrine
 

Mehr von Cedric Vidal

Camunda Days 2018 Building a digital on-boarding microservices platform using...
Camunda Days 2018 Building a digital on-boarding microservices platform using...Camunda Days 2018 Building a digital on-boarding microservices platform using...
Camunda Days 2018 Building a digital on-boarding microservices platform using...Cedric Vidal
 
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018Cedric Vidal
 
AgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehaveAgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehaveCedric Vidal
 
BBL KAPPA Lesfurets.com
BBL KAPPA Lesfurets.comBBL KAPPA Lesfurets.com
BBL KAPPA Lesfurets.comCedric Vidal
 
Rethinking Quicksign's Digital Onboarding - Confluent Streaming Days Paris
Rethinking Quicksign's Digital Onboarding - Confluent Streaming Days ParisRethinking Quicksign's Digital Onboarding - Confluent Streaming Days Paris
Rethinking Quicksign's Digital Onboarding - Confluent Streaming Days ParisCedric Vidal
 
Do microservices dream about CQRS-ES, Kafka Stream and BPMN ? - Voxxed micros...
Do microservices dream about CQRS-ES, Kafka Stream and BPMN ? - Voxxed micros...Do microservices dream about CQRS-ES, Kafka Stream and BPMN ? - Voxxed micros...
Do microservices dream about CQRS-ES, Kafka Stream and BPMN ? - Voxxed micros...Cedric Vidal
 
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0Cedric Vidal
 
MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0Cedric Vidal
 
Scaffolding MDSD par l’exemple - 1.0
Scaffolding MDSD par l’exemple - 1.0Scaffolding MDSD par l’exemple - 1.0
Scaffolding MDSD par l’exemple - 1.0Cedric Vidal
 

Mehr von Cedric Vidal (10)

Camunda Days 2018 Building a digital on-boarding microservices platform using...
Camunda Days 2018 Building a digital on-boarding microservices platform using...Camunda Days 2018 Building a digital on-boarding microservices platform using...
Camunda Days 2018 Building a digital on-boarding microservices platform using...
 
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018
Kubernetes and Gitops at Quicksign - Koncrete Kube Oct 2018
 
AgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehaveAgileTour Strasbourg 2011 BDD with jBehave
AgileTour Strasbourg 2011 BDD with jBehave
 
BBL KAPPA Lesfurets.com
BBL KAPPA Lesfurets.comBBL KAPPA Lesfurets.com
BBL KAPPA Lesfurets.com
 
EMF Customizer
EMF CustomizerEMF Customizer
EMF Customizer
 
Rethinking Quicksign's Digital Onboarding - Confluent Streaming Days Paris
Rethinking Quicksign's Digital Onboarding - Confluent Streaming Days ParisRethinking Quicksign's Digital Onboarding - Confluent Streaming Days Paris
Rethinking Quicksign's Digital Onboarding - Confluent Streaming Days Paris
 
Do microservices dream about CQRS-ES, Kafka Stream and BPMN ? - Voxxed micros...
Do microservices dream about CQRS-ES, Kafka Stream and BPMN ? - Voxxed micros...Do microservices dream about CQRS-ES, Kafka Stream and BPMN ? - Voxxed micros...
Do microservices dream about CQRS-ES, Kafka Stream and BPMN ? - Voxxed micros...
 
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
Eclipse Day Paris 2010 - ProxiAD - Cedric Vidal - 1.0
 
MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0
 
Scaffolding MDSD par l’exemple - 1.0
Scaffolding MDSD par l’exemple - 1.0Scaffolding MDSD par l’exemple - 1.0
Scaffolding MDSD par l’exemple - 1.0
 

Kürzlich hochgeladen

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Kürzlich hochgeladen (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

RMLL - Eclipse Acceleo Day - MDSD Scaffolding and Acceleo - Cédric Vidal - 1.1

  • 1. MDSD Scaffolding and Cédric Vidal, ProxiAD Friday 10th July 2009 Version 1.0
  • 2. Who are we ? ProxiADGroup SSII specialized in objectorienteddevelopment Dedicatedingenieringprocess industrialisation team Using MDA since 2004 on J2EE projects Cédric Vidal J2EE & MDA Architect ProxiAD IDF Technical Leader
  • 3. Agenda WhatisScaffolding ? Scaffolding in software Scaffoldingapplied to MDSD MDSD Scaffoldingapproaches Acceleo MTL Demo Benefits Links
  • 4. Whatisscaffolding ? Scaffolds are temporary structures that physically support workers while they complete jobs that would otherwise be impossible(HH93, p138)
  • 5. Scaffolding in software Ruby on Rails *Rails scriptingframeworksbringblazingfastproductivity in theirownspecifictechnologicalspace MainlythroughScaffolding !
  • 6. Ruby on Rails Scaffolding Meta-Programming Scaffoldingworksat the code level Scaffoldingengineoperates on code as a model Can beeither Static : on demand Dynamic : transparently on yourbehalf Entity.rb DAO.rb
  • 7. Others Ruby On Rails Grails Spring ROO Play! CakePHP Monorail Symfony …
  • 8. What’s the point ? Model-Drivenbringsquality, durability, maintainability What about productivity ? Code generationtemplateswritingalready productive withAcceleo (old and MTL) Goal: Enhancemodelingproductivity
  • 9. Objective Achievebothquality AND productivity BringScaffolding to Modeling
  • 10. WhatisScaffoldingapplied to Modeling ? Creating partial model structures on behalf of the designer that hewouldotherwise have to create by himself
  • 11. Model Scaffoldingtaxonomy Blind versus In-PlaceScaffolding Static versus DynamicScaffolding The greener the better
  • 12. Model Scaffoldingtaxonomy Classical code generation Compensated code generation « Blind » scaffolding « In-Place » scaffolding Eachstatic or dynamic
  • 13. Sampleproblemdomain 3-Tiers Architecture DSL containing concepts Entity DAO Service Java code isgenerated Légende Entity or DAO File Service Generation Reference Model separation Color code Hand-written Scaffolded Generated
  • 14. Classical code generation 1/2 Entities are modeled Entity and DAO source codes are generatedfrom the modeledEntity Problem: What if youwant to definequeries in your model ? Model Entity Text DAO.java Entity.java
  • 15. Classical code generation 2/2 Entity and DAOs are modeled Entity source code isgeneratedfrom the modeledEntity DAO source code isgeneratedfrommodeled DAO DAOswhich are not modeled are not generated Problem: You need to define all DAOs… Eventhosethatonly do CRUD Model DAO Entity Text DAO.java Entity.java
  • 16. Compensated code generation Source code isstillgeneratedfor modeledelements For Entitieswhich have no modeled DAO, wecompensate by generatingsource code for the DAO from the modeledEntity Advantage: Only custom DAOs are modeled Problem: DAO code generationlogicisduplicated Entity -> DAO.java DAO -> DAO.java Model Entity One DAO One Entity Two One.java TwoDAO.java Two.java OneDAO.java Text
  • 17. Generation « Blind » Model Scaffolding Model i Entity Two Each model is a step in the MDSD chain An intermediatestepisintroduced Each model canonly « see » the model before Existingelements are copied as is A DAO isgenerated for eachentitywhich has no DAO Advantage: Only one DAO code generationlogic Problem: How do youreferencescaffoldedelements DAO TwoDao Entity One Model i-bis Entity Two DAO TwoDao Entity One DAO OneDao Model i+1 One.java TwoDAO.java Two.java OneDAO.java
  • 18. How to referencescaffoldedelements ? The problemisillustrated by introducing a service The ‘Alpha’ service canreference the modeled DAO ‘TwoDao’ but not the scaffolded DAO ‘OneDao’ The scaffolded DAO ‘OneDao’ islocated in a model that the ‘Alpha’ service cannotsee Problem: « Blind » scaffoldingdoesn’tallowscaffoldedelementsreferencing Modèle i DAO TwoDao Entity Two Entity One Service Alpha Modèle i-bis DAO OneDao Entity One
  • 19. « In-place » Model Scaffolding ‘OneDao’ DAO isscaffolded in the same model as Entity ‘One’ The DAO is « visible » withoutbeingmaterialized in the input model Advantage: Le ‘Alpha’ service canreference the scaffolded DAO ‘OneDao’ Problem: How to customize a scaffoldedelement ? Model i Entity One DAO OneDao Service Alpha Model i+1 One.java AlphaService.java OneDao.java
  • 20. Takeover 1/3: Overview User cantake over scaffoldedelements The over takenelementisthenmaterialized in the input model Advantage: The DAO canbecustomized Iteration n Entity One DAO OneDao Service Alpha Iteration n+1 Entity One DAO OneDao Service Alpha
  • 21. Takeover 2/3: Zoom After the DAO taking over, CRUD methods are stillscaffolded Advantage: No need to manually input previouslyscaffoldedelements DAO OneDao Iteration n Entity One Service Alpha create read update delete Iteration n+1 DAO OneDao Entity One Service Alpha create read update delete
  • 22. Takeover 3/3: Customisation Iteration n+1 Let’sadd a finderfinder CRUD methods are stillscaffolded Advantage: Onlycustomizations are hand written, CRUD methods are scaffolded DAO OneDao Entity One Service Alpha create read update delete Iteration n+2 DAO OneDao Entity One Service Alpha create read update delete myFinder
  • 23. Deletion 1/2: The problem Whathappens if the user deletes an element for whichelementswerescaffolded ? Scaffoldedelements must alsobedeleted Model i Entity One DAO OneDao Service Alpha Model i+1 One.java AlphaService.java OneDao.java
  • 24. Deletion 2/2: solutions Need to keeptrackof scaffoldedelements Onlyreally a problemwithdynamic « in-place » scaffolding For static and/or « blind » scaffolding, scaffoldedelementscanjustbecomputed all over again
  • 26. WhatScaffoldingengine ? A model to model transformation engine ? ATL Xtend QVT Operational QVT Relational Obeo Transfo … A ruleengine ? Drools Any OO RuleEngine …
  • 27. A ruleengine ?? Scaffoldingrules as production rules The model as a workingmemory Model elements as facts When a givenconditionis met, new factsare insertedintoworkingmemory Those new facts are attached to the model as new elements
  • 28. Ruleenginesyncprocess Working Memory Model Entity One synchronize Entity One reference ScaffoldingRule reference DAO OneDao DAO OneDao synchronize
  • 30. Pros and cons M2M Engine Pros Leveragesexistingskills Sametechnologicalspace Suited for staticscaffolding Cons Hard to use for dynamic « in-place » scaffolding RuleEngine Pros Nativelysuited for dynamic « in-place » scaffolding Can do staticscaffolding as well Cons Differenttechnologicalspace as the rest of the MDSD technologies Cannotleverageexistingskills and transformations
  • 31. Scaffoldingdemo Dynamic « In-Place » DSL Scaffoldingdemo Uses A DSL withEntity, DAO and Service concepts An EMF.Edit editor DroolsRuleEngine as the scaffoldingengine
  • 32. MDSD Scaffoldingbenefits Acceleratesmodeling Allows to quickly come up with a working model The user startsfrom the beginingwith a complete model (complete in the direction the scaffoldingtakeshim) Provides the user with a fastfeedback Allows to enrich the input model as well as facilitatingits usage for the new user Bringsflexibilitywhilekeepingsimplicity Scaffoldingcanbecomplemented by code generationand model validation The user canwheneverhewantstake over the scaffoldedelements in order to customizethem
  • 33. Otherintegrations Structured model editors EMF.Edit GraphicalDSLs GMF Obeo Designer TextualDSLs Xtext UML models Papyrus/UML2Tools/Topcased IBM RSM
  • 34. Links JBossDroolshttp://jboss.org/drools/ Eclipse Acceleo MTLhttp://bit.ly/yS3gp ProxiAD’s Bloghttp://blog.proxiad.com Cédric Vidal’s Bloghttp://blog.proxiad.com/author/cvidal/ Cédric Vidal’sTwitterhttp://twitter.com/cedricvidal
  • 35. References HH93 - Herber, H., & Herber, J. (1993). Teaching in Content Areas With Reading, Writing, and Reasoning. Allyn & Bacon: Needham Heights, M.A.