SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Model2Roo: Web Application
Development based on the Eclipse
Modeling Framework and Spring Roo
Juan Castrejón, Genoveva Vargas-Solar, Rafael Lozano
University of Grenoble, CNRS, Tecnológico de Monterrey


ACME 2012
2




Background
•  First version of the project presented in early 2011

        Google Code Project                          Conference Paper




  http://code.google.com/p/model2roo   http://dx.doi.org/10.1109/CONIELECOMP.2011.5749344
3




Objective
•  Generate web applications, by transforming Class
  diagrams into Spring Roo commands




Ecore, UML2          ATL Queries   Spring Roo commands




Spring Roo details:
Ecore Annotations, UML Profiles
4




Related work
•  Web application development based on MDE techniques
 is a widely studied topic
 •  Web Modeling Language (WebML), WebRatio
 •  UWE approach
 •  Acceleo generators


•  However, Model2Roo provides an association to modern
 development tools, through the Spring Roo project
 •  Spring Roo is responsible for the actual code generation
 •  Access to a wide variety of SpringSource projects
5




User-identified issues
1.  Insufficient support for graphical environments
   •  Limited support for complex UML editors, such as Papyrus
   •  Limited support for numeric data types


2.  Basic edition of Spring Roo properties
   •  Spring Roo properties could only be set as free text
   •  Users were required to know the domains for each property


3.  Troublesome installation procedure
   •  Tool deployed as a single plugin file
   •  Manual installation of the required dependencies (ATL, Papyrus)
6




Technical issues
1.  Maintenance of ATL queries
   •  Not a standard Model-To-Text specification



2.  Output Spring Roo commands into a file
   •  ATL was designed primarily for M2M not for M2T
   •  In order to generate files, we had to modify ATL loggers
   •  Not an elegant solution, prone to subtle errors


3.  Invocation of ATL queries from Eclipse plugin
   •  Limited documentation
7




Recent improvements
1.  Transformations implemented as Acceleo templates
   •  Standard notation (MOFM2T)
   •  Powerful syntax editors
   •  Automatic generation of UI Launcher projects (Eclipse plugin)


2.  Improved edition of Spring Roo properties
   •  Full support for Papyrus profiles (UML)
   •  Properties domains are specified in the UML profiles
   •  Fixed support for Ecore Annotations


3.  Improved installation procedure
   •  Eclipse update site containing all required dependencies
8



 UML
Profile
9




  What do we use it for?
  1.  Generate test scenarios
                                                                 Architecture recovery
                                                                    and verification

          Web2MexADL
http://code.google.com/p/web2mexadl
                                                                       MexADL
                                                            http://code.google.com/p/mexadl
          MVC Analyzer
http://code.google.com/p/mvc-analyzer




   2.  Research prototypes                                           Data Storage


                     Instance Model Bus                 Model-Driven Cloud Data Storage
          http://code.google.com/p/instance-model-bus    http://code.google.com/p/modesto
10




Model-Driven Cloud Data Storage
                                                                1
                                                           High-level
                                                          abstractions

                                               Java
                                               web
                                               App
                                                      Spring Data/CDMI/etc.
UML class diagram        Spring Roo




                    2
               Low-level
              abstractions
                              Graph database
                                                      Relational database
11




Demonstration / Questions



  Contact: Juan.Castrejon@imag.fr

Mais conteúdo relacionado

Semelhante a Model2Roo - ACME

Spring Architecture | Advanced Java
Spring Architecture | Advanced JavaSpring Architecture | Advanced Java
Spring Architecture | Advanced JavaVISHAL DONGA
 
An overview of the architecture of electron.js
An overview of the architecture of electron.jsAn overview of the architecture of electron.js
An overview of the architecture of electron.jsMoon Technolabs Pvt. Ltd.
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satyaSatya Johnny
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring FrameworkEdureka!
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorialsTIB Academy
 
Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorialvinayiqbusiness
 
Tech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning productsTech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning productsGianmario Spacagna
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework tola99
 
spring framework ppt by Rohit malav
spring framework ppt by Rohit malavspring framework ppt by Rohit malav
spring framework ppt by Rohit malavRohit malav
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseMatt Raible
 
Effective websites development
Effective websites developmentEffective websites development
Effective websites developmentDevexperts
 

Semelhante a Model2Roo - ACME (20)

Spring Architecture | Advanced Java
Spring Architecture | Advanced JavaSpring Architecture | Advanced Java
Spring Architecture | Advanced Java
 
An overview of the architecture of electron.js
An overview of the architecture of electron.jsAn overview of the architecture of electron.js
An overview of the architecture of electron.js
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satya
 
Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satya
 
Struts notes
Struts notesStruts notes
Struts notes
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorials
 
Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorial
 
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
 
Java Spring Framework
Java Spring FrameworkJava Spring Framework
Java Spring Framework
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
spring framework ppt by Rohit malav
spring framework ppt by Rohit malavspring framework ppt by Rohit malav
spring framework ppt by Rohit malav
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
 
Effective websites development
Effective websites developmentEffective websites development
Effective websites development
 

Último

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Último (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

Model2Roo - ACME

  • 1. Model2Roo: Web Application Development based on the Eclipse Modeling Framework and Spring Roo Juan Castrejón, Genoveva Vargas-Solar, Rafael Lozano University of Grenoble, CNRS, Tecnológico de Monterrey ACME 2012
  • 2. 2 Background •  First version of the project presented in early 2011 Google Code Project Conference Paper http://code.google.com/p/model2roo http://dx.doi.org/10.1109/CONIELECOMP.2011.5749344
  • 3. 3 Objective •  Generate web applications, by transforming Class diagrams into Spring Roo commands Ecore, UML2 ATL Queries Spring Roo commands Spring Roo details: Ecore Annotations, UML Profiles
  • 4. 4 Related work •  Web application development based on MDE techniques is a widely studied topic •  Web Modeling Language (WebML), WebRatio •  UWE approach •  Acceleo generators •  However, Model2Roo provides an association to modern development tools, through the Spring Roo project •  Spring Roo is responsible for the actual code generation •  Access to a wide variety of SpringSource projects
  • 5. 5 User-identified issues 1.  Insufficient support for graphical environments •  Limited support for complex UML editors, such as Papyrus •  Limited support for numeric data types 2.  Basic edition of Spring Roo properties •  Spring Roo properties could only be set as free text •  Users were required to know the domains for each property 3.  Troublesome installation procedure •  Tool deployed as a single plugin file •  Manual installation of the required dependencies (ATL, Papyrus)
  • 6. 6 Technical issues 1.  Maintenance of ATL queries •  Not a standard Model-To-Text specification 2.  Output Spring Roo commands into a file •  ATL was designed primarily for M2M not for M2T •  In order to generate files, we had to modify ATL loggers •  Not an elegant solution, prone to subtle errors 3.  Invocation of ATL queries from Eclipse plugin •  Limited documentation
  • 7. 7 Recent improvements 1.  Transformations implemented as Acceleo templates •  Standard notation (MOFM2T) •  Powerful syntax editors •  Automatic generation of UI Launcher projects (Eclipse plugin) 2.  Improved edition of Spring Roo properties •  Full support for Papyrus profiles (UML) •  Properties domains are specified in the UML profiles •  Fixed support for Ecore Annotations 3.  Improved installation procedure •  Eclipse update site containing all required dependencies
  • 9. 9 What do we use it for? 1.  Generate test scenarios Architecture recovery and verification Web2MexADL http://code.google.com/p/web2mexadl MexADL http://code.google.com/p/mexadl MVC Analyzer http://code.google.com/p/mvc-analyzer 2.  Research prototypes Data Storage Instance Model Bus Model-Driven Cloud Data Storage http://code.google.com/p/instance-model-bus http://code.google.com/p/modesto
  • 10. 10 Model-Driven Cloud Data Storage 1 High-level abstractions Java web App Spring Data/CDMI/etc. UML class diagram Spring Roo 2 Low-level abstractions Graph database Relational database
  • 11. 11 Demonstration / Questions Contact: Juan.Castrejon@imag.fr