You Think, You Get
Code Generation 2011 Conference, May 25-27
How to get to 100% code generation and infinite virtuous cycles
2
Summary
Model-Driven Development introduction
Code Generation vs Model Interpretation
How we can make infinite virtuous cycles
How we get to 100% Code Generation
What is WebRatio
Who can use WebRatio
Benefits of WebRatio
Some references
3
Model-Driven Development
a range of development approaches that are based on the use of software modeling as a primary form of expression
... yield higher levels of abstraction in software development
… Combined with executable semantics this elevates the total level of automation possible
http://en.wikipedia.org/wiki/Model-driven_engineering
Code Generation vs Model Interpretation
Design-time Run-time
Model
Model
GenerationRules
Interpreter
Model
GeneratedApplication
GenerationEngine
Immediately available
Generation and deploy
Model Interpretation
Code Generation
Tool user(Modeler)
Tool user(Modeler)
Tool user(Programmer)
ApplicationUser
ApplicationUser
Vendor-dependent code
5
3 reasons why we chose Code Generation (of Java Web applications)
execution environment is as standard as possible: standard architecture, standard libraries
customer can choose its preferred execution environment: an open source application server: tomcat, jboss, glassfish a commercial application server: ibm websphere, oracle as a cloud JEE service: amazon ec2
two degrees of freedom instead of one managing the Visual Identity
Same model with different generation rules (e.g. for addressing different companies) Different models with the same generation rule (write presentation rules only once inside a
single company)
no vendor lock-in: standard Java Web applications can be easily maintained without the tool
Code Generation vs Model Interpretation
How we can make infinite cycles
Model
GenerationRules
DevelopmentPrototype
GenerationEngine
Tool user(Modeler)
Tool user(Programmer)
ApplicationTest User
Zero-cost, 1-click, prototype generation
FinalGeneratedApplication
FinalApplication User
Development / Testing environment
Final execution environmentDifferent deployment
configurations
Iterative, agile development
?
How we get to 100% Code Generation
Do you want to touch the code? Touch the generator instead!
Model
GenerationRules
GeneratedApplication
GenerationEngine
Tool user(Modeler)
Tool user(Programmer)
ApplicationUser
?
What is WebRatio
The fertile environment for building and maintainingyour custom enterprise applications
9
What is WebRatio
An Eclipse-based development environment allowing:
Modeling: ER + WebML + BPMN
100% code generation of standard JEE applications Clear separation between design time and run time No proprietary runtime
Quick and agile development cycles
Extending the generation rules Defining new presentation styles Defining new components
Versioning, teamwork, full lifecycle mgt
10
Who are the target users of WebRatio
Application Model(ER + WebML)
Custom Model Components (Java, API ,…)
Layout Templates(HTML, CSS, JavaScript, ...)
Business ProcessAnalyst
Application Analyst /WebRatio Modeler
WebDesigner
JavaProgrammer
Standard JavaWeb application
Generation rules
Model editor
Process Model (BPMN)
WebML, the DSL for the Web
Horizontal vs Vertical DSLs
Vertical DSL: a language targeting the problem domain and usually a specific market, industry or field
Examples are configuration languages for home automation systems, modelling languages for biological experiments, analysis languages for financial applications and so on…
Horizontal DSL: a language targeting the solution (technology) domain and hence with a broader application field.
Examples are SQL, Flex, Pixel bender, and so on...
WebML
a “horizontal” DSL, targeting the Web domain
standardization proposal started within the OMG
11
12
Business Agility: keep your IT applications always aligned to Business needs
Development Speed: boost up your development productivity, up to 3 times (FP metrics measured, productivity index > 110 FP/staff month)
Reuse: build up a fertile environment, with your own custom components
Your visual identity
The connections to your information systems
Your custom business logic
You are the homeowner: generated applications are compliant with Java standards
No proprietary runtime servers
No additional runtime costs
WebRatio: which benefits?
13
Kinds of application
Corporate Operations
Human Capital Management
Product Life Cycle Management
CustomerRelationshipManagement
Enterprise Resource Planning
Supply Chain Management
Knowledge Support
Sales and LeadManagement
Marketing Resources Mgt
Web CustomerServices
B2C/B2BE-Commerce
Learning Management
Document Management
Project Management
Customer Information Mgt
Partner Relationship Mgt
Recruitment
Training
Workforce Management
Supplier Relationship Mgt
Business Intelligence
Web Content Management
Knowledge Management
Risk and Compliance
Enterprise Governance
Order Mgt
Payment Services Orchestration
Web Front-End of accounting sys.
Front-Office Process Mgt
Financial Services
Summary
WebRatio is
now at its 6th major release
in the market since 2001
WebRatio customers
100+ companies and 500+ users
in Italy, Europe and South America
WebRatio partners
40+ software houses and system integrators
300+ universities worldwide, 12.000+ students
Live DemoInteractive Session
Thank You!
www.webratio.comblog.webratio.comstefano.butti@webratio.com02.3671.4280