SlideShare a Scribd company logo
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

More Related Content

Similar to Model2Roo - ACME

Spring Architecture | Advanced Java
Spring Architecture | Advanced JavaSpring Architecture | Advanced Java
Spring Architecture | Advanced Java
VISHAL 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.js
Moon Technolabs Pvt. Ltd.
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
VMware Tanzu
 
Struts notes
Struts notesStruts notes
Struts notes
dssreenath
 
Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satya
Satya Johnny
 
Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satya
Seshadri Pullaanagari
 
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
IT Arena
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
Edureka!
 
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
VMware Tanzu
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
Gary Pedretti
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorials
TIB Academy
 
Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorial
vinayiqbusiness
 
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
 
Java Spring Framework
Java Spring FrameworkJava Spring Framework
Java Spring Framework
Mehul Jariwala
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
ADC Austin Tech
 
Spring framework
Spring frameworkSpring framework
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 malav
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
Matt Raible
 
Effective websites development
Effective websites developmentEffective websites development
Effective websites development
Devexperts
 

Similar to 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 notes
Struts notesStruts notes
Struts notes
 
Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satya
 
Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satya
 
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
 

Recently uploaded

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 

Recently uploaded (20)

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 

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