300 likes | 315 Views
Learn about Genova, a tool for modeling and generating data-intensive systems, and how it can improve application development and maintenance. Explore Genova's models, template language, and targets. Find out how to contribute as an architect and use model-driven development to create high-quality code.
E N D
Development with Genova Model driven development of user interfaces and services with Genova
Contents • Esito and I • A development model • Genova’s models • Showing a generated system • Genova’s template language and targets • Questions
Who am I? • Knut Sagli, senior consultant in Esito • Contribute as an architect to Genova frameworks
Esito shall give their customers better quality and lower cost during their applications life spans from development through maintenance to EOL Support model driven development Make the best code generators Esito
Genova 6.1 Genova 7 Genova 8 Genova 8.1 Genova 8.3 Genova 8.5 Systemator 2.1 Systemator 4 Systemator 6.2 Esito history 2009: G 8.5 jVine/Jouteur 2009: Genova 8.3 XML 2006: G 8.1 Service designer 2005: Esito 2004: Genova 8 new IDE 2000: Genova 7 w/Sysdul 1998: Genova 6 1997: Genera 1996: Windows NT, SOV/SOL 1995: Systemator 5 1992: GUI 1989: Unix 80s: NSB, TAD 1980: Sysdeco 70s: Research
What Genova is • Genova is a tool for modeling and generating data intensive systems that plan to have a long life through maintenance • Genova adds value in all phases of the development life cycle Modeling Languages & Techniques Prototyping Modeling RationalRose Genova EnterpriseArchitect Generate Iterate Application database Application components
Generated models Service Genova Data access Client Hooks Database View ORMapping Hooks Persistence Controller Services Actions Generated code Written code Domain model
Systems made from models • Iteratively developed systems where models are the source of program execution • Models are great for communication and document the system at the same time • Generate all framework and plumbing code with high level of quality • Survive paradigm changes
Data intensive systems • Data intensive systems operate on the domain data • Typically company expert systems • Presenting and storing data are the main jobs • Administers business rules
Dialog Designer Service Designer Domain Designer Genova elements • Synchronizing with Enterprise Architect or Rational Rose • Domain Designer • Service Designer • Dialog Designer • Generators
Domain classes Object-Relation-Mapping Genova’s models Genova Genova Genova UI Designer Service Designer Domain Designer UI template Object selection Domain model Database model UI model Database CRUD XML Jouteur
Outlined development model Use case model Scenarios Navigation model Domain model Style guide Dialog model User interface prototype
A short demo of Genova • Showing tools and interaction • Generating from an existing workspace • Making a dialog from scratch • Generating the newly created dialog • Running the application
Application architecture - Java Generated by Genova Genova framework View Controller 3. party framework Logic/Actions/ Hooks Actions Hooks Domain model Written code ServiceProxy ServiceProxy Spring Service interface WS/EJB/Pojo Hooks Service Service Service Domain model Persistence Hibernate ORmapping Database
Unit test architecture of Jouteur Generated by Genova Test view Hand-written code Controller Actions Hooks Test tools provided by Genova Test environment Domain model Service mock Unit tests Data source Test data files
Dialog style guide Template Style Layout Color Font Resources • High level resources encompass the lower level resources • The style guide is a template for dialog model generation • Changes to the template propagate throughout the dialog model
Java JFC/swing Java/EJB Java/EJB Hibernate xml Oracle.sql Oracle Hibernate Architechture Dialog Designer Dialog Model Styleguide Service Designer Object Selection Domain Designer Domain Model Database Model Genova Templates Generated code
Many different targets • Dialog Designer • Dialog Report • Java/JFC (Swing) • Jasper Report • C++/MFC • Visual Basic • Web/Asp • Web/Jsp • Sysdul/ddf • Java/ICEfaces (JSF) • Jouteur • Service Designer • Java/EJB • Java2XML • Sysdul • Sysdul2XML • Jouteur • Domain Designer • Java • Jouteur • Data Access • Hibernate • Genova Data Objects • Div EJB2 versjoner • XmlSchema • Sysdul • Database • Oracle • Sybase • SQLserver • MySQL • Derby • Mimer • XMLSchema
Generation Models Code Generator Template set
Template example %FILE% data.txt %ITERATE:DialogModel% Dialog: %Name% %ENDITERATE% %ENDFILE% • Using the dialog generator • The template prints out the name of all dialogs in the application to the specified file, "data.txt“ • Directives: • %FILE%, %ENDFILE% • %ITERATE%, %ENDITERATE% • Substitutions: • %Name% • Text: • “Dialog: “
Documentation • Genova menu: Help/Documentation • Template Parser – describes the language • Code generators – describes the iterations and substitution variables • Dialog Generator • Service Generator • Domain Generator • Database Generator • Installed in %GENOVA8_HOME%\doc
The template language • Sections • Directives • Substitution variables and template parameters • Expressions/operators • Text functions • Macros • Generator setup
Questions • Everything clear? • Summer job? • Working on templates