SlideShare a Scribd company logo
1 of 33
MDA: Smarter development of Java EE applications ,[object Object],<logo>
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Speakers Background ,[object Object],[object Object],[object Object],<logo> ,[object Object],[object Object],[object Object]
Model Driven Architecture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MDA Process ,[object Object],[object Object],[object Object],PIM Working software PSM CIM Transformation
MDA Process ,[object Object],[object Object],[object Object],PIM Working software PSM CIM Transformation
Top-down vs Bottom-up Working software Models PIM PSM Top-down Bottom-up Transformation Skilled Transformation Capture domain information Transformation Capture technical information Simple tools (whiteboards) Modify code As needed
Pragmatic approach to MDA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Models Code
Bottom Up : Target Architecture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Patterns Platform indep. model Target architecture Domain model
Bottom Up : Target Architecture ,[object Object],[object Object],Platform specific model Transformation Platform indep. model Target architecture Domain model
Bottom Up : Domain Model Concepts ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Platform indep. model Target architecture Domain model
MDA Toolchain : Pick your tools! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ingredients for pragmatic MDA A well-defined  Technology Stack A well-defined  Target Architecture A well-defined Automation Scope ,[object Object],[object Object],Code Patterns Meta model Models Templates
Ingredient 1: Technology-stack
Ingredient 2: Target-architecture
Ingredient 3: Automation-goals Stereotype Generator Artifacts
Basic Principles Application Aspect Target Architecture Translation Stereotype Template Engine Approach Artifacts Translation 1 1..n
Basic Principles: by example Entities Application Aspect Template Engine POJO + ORM Target Architecture Translation Entity Class JPA Config DAO Class Artifacts <<DomainEntity>> Stereotype Translation DDD (Eric Evans) Approach
By Example Conference Administration as a Service (CAaaS) WS1 Registration Service Schedule Service WS2 Domain Model RIA (Silverlight) Access Logic Data Persistency Client Domain Facades Business Facades
By Example Domain Model
By Example Domain Facade
By Example Domain Logic
By Example Web Service Fine-tuning with “Tagged Values” in EA Facades use a canonical data model (CDM) to allow XSD-based data contracts
Stereotypes with a background ,[object Object]
Room for hand-crafting! Seam injection is used to merge “custom code” Seam component (separate class) holds “custom code”
From meta-model to code Step 1    Build your meta-model Create your meta-model in EA using predefined meta-types and object-orientation Properties in your meta-model become tagged-values in your model
From meta-model to code Step 2    Save your meta-model as UML 2.0 Profile Export meta-model as UML 2.0 Profile Import UML 2.0 Profile into your model Ready to model!
From meta-model to code Step 3    Take your pick and model... Your own stereotypes in EA Drag-and-Drop from toolbox to diagram
From meta-model to code Step 4a    Generate artifacts (update/build process) The template engine transforms stereotypes into artifacts ,[object Object],[object Object],[object Object]
From meta-model to code Step 4b    Generate artifacts (template engine) Ant-task EA repository EA api FMPP Template Models (java class) Templates Templates Templates Templates DomainEnumeration.ftl
From meta-model to code Step 4c    Generate artifacts (output) Java Entity Java DAO C# Entity Hibernate mapping XSD Type
Are you ready for MDA? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[email_address] [email_address] Time for a demo and questions…

More Related Content

What's hot

Tech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning productsTech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning products
Gianmario Spacagna
 

What's hot (12)

(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
 
Why is dev ops for machine learning so different - dataxdays
Why is dev ops for machine learning so different  - dataxdaysWhy is dev ops for machine learning so different  - dataxdays
Why is dev ops for machine learning so different - dataxdays
 
From Data Science to MLOps
From Data Science to MLOpsFrom Data Science to MLOps
From Data Science to MLOps
 
Machine Learning system architecture – Microsoft Translator, a Case Study : ...
Machine Learning system architecture – Microsoft Translator, a Case Study :  ...Machine Learning system architecture – Microsoft Translator, a Case Study :  ...
Machine Learning system architecture – Microsoft Translator, a Case Study : ...
 
"Custom ML Models for Each User", Siamion Karasik
"Custom ML Models for Each User", Siamion Karasik"Custom ML Models for Each User", Siamion Karasik
"Custom ML Models for Each User", Siamion Karasik
 
Introducing Eclipse MoDisco
Introducing Eclipse MoDiscoIntroducing Eclipse MoDisco
Introducing Eclipse MoDisco
 
Version Control in AI/Machine Learning by Datmo
Version Control in AI/Machine Learning by DatmoVersion Control in AI/Machine Learning by Datmo
Version Control in AI/Machine Learning by Datmo
 
MLflow: A Platform for Production Machine Learning
MLflow: A Platform for Production Machine LearningMLflow: A Platform for Production Machine Learning
MLflow: A Platform for Production Machine Learning
 
Simplifying Model Management with MLflow
Simplifying Model Management with MLflowSimplifying Model Management with MLflow
Simplifying Model Management with MLflow
 
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
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
MLOps Using MLflow
MLOps Using MLflowMLOps Using MLflow
MLOps Using MLflow
 

Similar to Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties

Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
Bill Duncan
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
Piero Fraternali
 
Legacy Migration Overview
Legacy Migration OverviewLegacy Migration Overview
Legacy Migration Overview
Bambordé Baldé
 
Legacy Migration
Legacy MigrationLegacy Migration
Legacy Migration
WORPCLOUD LTD
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011
Hugo Bruneliere
 
Data Access Tech Ed India
Data Access   Tech Ed IndiaData Access   Tech Ed India
Data Access Tech Ed India
rsnarayanan
 

Similar to Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties (20)

A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small Projects
 
ALT
ALTALT
ALT
 
T4 presentation
T4 presentationT4 presentation
T4 presentation
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
MDA
MDAMDA
MDA
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
Bhadale group of companies - Our project works
Bhadale group of companies - Our project worksBhadale group of companies - Our project works
Bhadale group of companies - Our project works
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Pratk kambe rac
Pratk kambe racPratk kambe rac
Pratk kambe rac
 
The REMICS model-driven process for migrating legacy applications to the cloud
The REMICS model-driven process for migrating legacy applications to the cloudThe REMICS model-driven process for migrating legacy applications to the cloud
The REMICS model-driven process for migrating legacy applications to the cloud
 
Legacy Migration Overview
Legacy Migration OverviewLegacy Migration Overview
Legacy Migration Overview
 
Legacy Migration
Legacy MigrationLegacy Migration
Legacy Migration
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
 
PHP modernization approach generating KDM models from PHP legacy code
PHP modernization approach generating KDM models from PHP legacy codePHP modernization approach generating KDM models from PHP legacy code
PHP modernization approach generating KDM models from PHP legacy code
 
Practical Experiences Migrating Unified Modeling Language Models to IBM® Rati...
PracticalExperiences Migrating Unified Modeling Language Models to IBM® Rati...PracticalExperiences Migrating Unified Modeling Language Models to IBM® Rati...
Practical Experiences Migrating Unified Modeling Language Models to IBM® Rati...
 
Large Language Models Bootcamp
Large Language Models BootcampLarge Language Models Bootcamp
Large Language Models Bootcamp
 
Data Access Tech Ed India
Data Access   Tech Ed IndiaData Access   Tech Ed India
Data Access Tech Ed India
 

Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Top-down vs Bottom-up Working software Models PIM PSM Top-down Bottom-up Transformation Skilled Transformation Capture domain information Transformation Capture technical information Simple tools (whiteboards) Modify code As needed
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 16. Ingredient 3: Automation-goals Stereotype Generator Artifacts
  • 17. Basic Principles Application Aspect Target Architecture Translation Stereotype Template Engine Approach Artifacts Translation 1 1..n
  • 18. Basic Principles: by example Entities Application Aspect Template Engine POJO + ORM Target Architecture Translation Entity Class JPA Config DAO Class Artifacts <<DomainEntity>> Stereotype Translation DDD (Eric Evans) Approach
  • 19. By Example Conference Administration as a Service (CAaaS) WS1 Registration Service Schedule Service WS2 Domain Model RIA (Silverlight) Access Logic Data Persistency Client Domain Facades Business Facades
  • 23. By Example Web Service Fine-tuning with “Tagged Values” in EA Facades use a canonical data model (CDM) to allow XSD-based data contracts
  • 24.
  • 25. Room for hand-crafting! Seam injection is used to merge “custom code” Seam component (separate class) holds “custom code”
  • 26. From meta-model to code Step 1  Build your meta-model Create your meta-model in EA using predefined meta-types and object-orientation Properties in your meta-model become tagged-values in your model
  • 27. From meta-model to code Step 2  Save your meta-model as UML 2.0 Profile Export meta-model as UML 2.0 Profile Import UML 2.0 Profile into your model Ready to model!
  • 28. From meta-model to code Step 3  Take your pick and model... Your own stereotypes in EA Drag-and-Drop from toolbox to diagram
  • 29.
  • 30. From meta-model to code Step 4b  Generate artifacts (template engine) Ant-task EA repository EA api FMPP Template Models (java class) Templates Templates Templates Templates DomainEnumeration.ftl
  • 31. From meta-model to code Step 4c  Generate artifacts (output) Java Entity Java DAO C# Entity Hibernate mapping XSD Type
  • 32.
  • 33. [email_address] [email_address] Time for a demo and questions…