development with genova
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/1.jpg)
Development with GenovaModel driven development of user
interfaces and services with Genova
![Page 2: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/2.jpg)
Contents Esito and I A development model Genova’s models Showing a generated system Genova’s template language and targets Questions
2
![Page 3: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/3.jpg)
Who am I? Knut Sagli, senior consultant in
Esito Contribute as an architect to
Genova frameworks
3
![Page 4: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/4.jpg)
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
4
![Page 5: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/5.jpg)
Systemator 2.1
Esito history
Genova 6.1
Genova 7
2009: G 8.5 jVine/Jouteur
2009: Genova 8.3 XML2006: G 8.1
Service designer
2005: Esito2004: Genova 8 new
IDE2000: Genova 7
w/Sysdul1998: Genova 61997: Genera1996: Windows NT, SOV/SOL1995: Systemator 51992: GUI1989: Unix80s: NSB, TAD1980: Sysdeco70s: Research
Systemator 4Systemator 6.2
Genova 8Genova 8.1
Genova 8.3
Genova 8.5
5
![Page 6: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/6.jpg)
Customers
6
![Page 7: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/7.jpg)
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
Applicationcomponents
Prototyping
Generate
ModelingLanguages & Techniques
Applicationdatabase
RationalRose
IterateEnterpriseArchitect
Genova
7
![Page 8: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/8.jpg)
Generated modelsact Reserv asjon
Ønske om reservasjon
Finn hotell
Velg romkategori
Opprett kunde
Opprettreserv asjon
Reservert romMislykket reservasjon
[Ingen tilgjengelige rom]
[Ful lt hotell]
[Ful lt i romkategori ]
[Ti lgjengel ig rom]
[Eksisterende kunde][Ny kunde]
Client
Cont
rolle
r
Hooks
Actions Services
Hooks
Service
ORM
appi
ng
Pers
isten
ce
Data access
Domain model
View
Data
base
uc Hotellv edlikehold
dialog::VisRomov ersikt
dialog::VisHotell
dialog::FinnRomkategoriAnsatt
(from Aktører)
Finn romkategori
Vis alle hoteller i kjede
Vis romov ersikt
for hotell
class Reserv asjon
«Class»Reserv asjon
«Attribute»- fradato: Date- id: int- ti ldato: Date
«Class»hotell::Hotell
«Attribute»- id: int- logo: String- navn: String- sted: String
«Class»hotell::Romkategori
«Attribute»- antallSoveplasser: int- id: int- romkvalitet: ERomkvalitet- sengtype: ESengtype- storkunderabatt: int- utgangspris: int
«Group»- RomKatMain
«Class»kunde::Kunde
«Attribute»- epost: String- kundenr: int- navn: String- telefonnr: String
-kunde 1
-reservasjoner 0..* 0..*-romkategori
1
0..*
-hotell
1
Genova
Written code
Generated code8
![Page 9: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/9.jpg)
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
9
![Page 10: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/10.jpg)
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
10
![Page 11: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/11.jpg)
Genova elements Synchronizing with Enterprise
Architect or Rational Rose Domain Designer Service Designer Dialog Designer Generators
Dialog Designer
Domain DesignerService Designer
11
![Page 12: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/12.jpg)
Genova’s models
UI Designer
Object selection
Service Designer Domain Designer
UI template
UI model
Domain model
Database model
Domain classes
Object-Relation-Mapping
CRUD
Database
Genova Genova Genova
XML
Jouteur
12
![Page 13: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/13.jpg)
Outlined development modelUse case model
Scenarios
Domain model
Dialog model
User interface prototype
Style guideNavigation model
13
![Page 14: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/14.jpg)
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
14
![Page 15: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/15.jpg)
Application architecture - JavaGenerated by GenovaGenova framework3. party framework
Written code
ViewController
SpringServiceProxy
HooksActions ServiceProxy
Logic/Actions/Hooks
WS/EJB/PojoDo
mai
n m
odel
Service interface
Hibernate
Database
ORmapping
Persistence
Serv
iceSe
rvice
Serv
ice HooksDo
mai
n m
odel
15
![Page 16: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/16.jpg)
Unit test architecture of Jouteur
Test viewController
Dom
ain
mod
el
Data sourceService mock
HooksActions
Test
env
ironm
ent
Test datafiles
Unit tests Generated by GenovaHand-written code
Test tools provided by Genova
16
![Page 17: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/17.jpg)
Making a dialog model
17
![Page 18: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/18.jpg)
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
FontColor
LayoutStyle
TemplateDialog style guide
18
![Page 19: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/19.jpg)
Swing: Generated dialog code
19
![Page 20: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/20.jpg)
ICEfaces : Generated view code
class Generated v iew code
<DialogName>Const
«interface»DialogView
<DialogName>DefaultView
<DialogName>View
«interface»ViewModel
FacesDialogBean
<DialogName>DefaultBean
<DialogName>Bean
«interface»ApplicationView
FacesApplicationBean
JSF managed property
AbstractDialogView
FacesDialogView
ListRow
<ListblockName>ListRow
*
20
![Page 21: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/21.jpg)
ICEfaces : Generated controller code
class Generated controller code
ApplicationController
<ObjectSelectionName>Const
DialogController
<DialogName>DefaultController
<DialogName>Controller
«interface»OSRole
<RoleName>Role
*
*
21
![Page 22: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/22.jpg)
Generated service code
22
![Page 23: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/23.jpg)
Architechture
Dialog Designer
Service Designer
Domain Designer
JFC/swing
Java/EJB
Hibernate
Hibernatexml
Java
Java/EJB
Templates Generated code
Dialog ModelStyleguide
Object Selection
Domain ModelDatabase Model Oracle.sql
Oracle
Genova
23
![Page 24: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/24.jpg)
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
24
![Page 25: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/25.jpg)
Generation
Generator
Models
Template set
Code
26
![Page 26: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/26.jpg)
Template example%FILE% data.txt %ITERATE:DialogM
odel% 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: “
27
![Page 27: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/27.jpg)
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
28
![Page 28: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/28.jpg)
The template language Sections Directives Substitution variables and template
parameters Expressions/operators Text functions Macros Generator setup
29
![Page 29: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/29.jpg)
Genova in Eclipse
30
![Page 30: Development with Genova](https://reader036.vdocuments.us/reader036/viewer/2022062410/56816630550346895dd998bf/html5/thumbnails/30.jpg)
Questions Everything clear? Summer job?
Working on templates
31