Genova 6.1 Genova 7

advertisement
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
2
Who am I?


Knut Sagli, senior consultant in Esito
Contribute as an architect to Genova
frameworks
3
Esito

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
4
Esito history
Genova 8.5
Genova 8.3
Genova 6.1
Genova 8.1
Genova 8
Genova 7
5
Systemator 6.2
Systemator 4
Systemator 2.1
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
Customers
6
What Genova is


7
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
Rational
Rose
Genova
Modeling
Iterate
Enterprise
Architect
Application
components
Generate
Application
database
Generated models
uc Hotellv edlikehold
act Reserv asj on
Finn
romkategori
Ønske om reservasjon
class Reserv asj on
(from Aktører)
Finn hotell
«Class»
hotell::Hotell
«Class»
Reserv asj on
[Fullt hotell]
«Attribute»
Velg romkategori - fradato: Date 0..*
- id: int
- tildato: Date
[Fullt i romkategori]
dialog::
FinnRomkategori
Ansatt
-reservasjoner
-kunde
-hotell
«Attribute»
1 - id: int
- logo: String
- navn: String
- sted: String
0..*
-romkategori
0..*
1
«Class»
hotell::Romkategori
1
[Tilgjengelig rom]
«Class»
Opprett kunde
kunde::Kunde
[Ny kunde]
[Ingen tilgjengelige rom]
[Eksisterende kunde]
«Attribute»
- epost: String
kundenr: int
Opprett
reserv asj on - navn: String
- telefonnr: String
Vis alle
hoteller i kj ede
dialog::
VisHotell
Vis
romov ersikt
for hotell
dialog::
VisRomov ersikt
«Attribute»
- antallSoveplasser: int
- id: int
- romkvalitet: ERomkvalitet
- sengtype: ESengtype
- storkunderabatt: int
- utgangspris: int
«Group»
- RomKatMain
Genova
Mislykket reservasjon Reservert rom
Hooks
Services
Actions
Domain model
Database
Hooks
ORMapping
8
Controller
View
Data access
Persistence
Service
Client
Generated code
Written code
Systems made from models



9

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
10
Genova elements





Synchronizing with Enterprise Architect or
Rational Rose
Domain Designer
Service Designer
Dialog Designer
Generators
11
Dialog Designer
Service Designer
Domain Designer
Genova’s models
Genova
UI Designer
UI template
Genova
Service Designer
Object selection
Genova
Domain Designer
Domain model
Database model
UI model
Domain
classes
Database
XML
CRUD
12
Jouteur
Object-RelationMapping
Outlined development model
Use case model
Scenarios
Navigation model
Domain model
Style guide
Dialog model
User interface prototype
13
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
Application architecture - Java
Generated by Genova
3. party framework
Written code
Domain model
Genova framework
View
Controller
Actions
Hooks
Logic/Actions/
Hooks
ServiceProxy
ServiceProxy
Spring
15
Service
Service
Service
Domain model
Service interface
Hooks
WS/EJB/Pojo
Persistence
Hibernate
OR
mapping
Database
Unit test architecture of Jouteur
Unit tests
Controller
Actions
Hooks
Service mock
Data source
Test data
files
Test environment
Domain model
Test view
Generated by Genova
Hand-written code
Test tools provided
by Genova
16
Making a dialog model
17
Resources



18
High level resources
encompass the lower
Dialog style guide
level resources
Template
The style guide is a
template for dialog
Style
Layout
model generation
Color Font
Changes to the template
propagate throughout
the dialog model
Swing: Generated dialog code
19
ICEfaces : Generated view code
class Generated v iew code
«interface»
ApplicationView
«interface»
DialogView
«interface»
View Model
*
FacesApplicationBean
JSF managed property
ListRow
AbstractDialogView
FacesDialogView
FacesDialogBean
<DialogName>Const
<DialogName>DefaultBean
<ListblockName>ListRow
<DialogName>DefaultView
20
<DialogName>Bean
<DialogName>View
ICEfaces : Generated controller code
class Generated controller code
ApplicationController
*
«interface»
OSRole
DialogController
*
<Obj ectSelectionName>Const
<DialogName>DefaultController
21
<DialogName>Controller
<RoleName>Role
Generated service code
22
Architechture
Dialog Designer
Java
Dialog Model
Styleguide
JFC/swing
Service Designer
Java/EJB
Object Selection
Java/EJB
Domain Designer
Hibernate
Domain Model
Database Model
Hibernate
xml
Oracle.sql
Oracle
23
Templates
Genova
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

24




Java/EJB
Java2XML
Sysdul
Sysdul2XML
Jouteur

Domain Designer



Data Access






Java
Jouteur
Hibernate
Genova Data Objects
Div EJB2 versjoner
XmlSchema
Sysdul
Database







Oracle
Sybase
SQLserver
MySQL
Derby
Mimer
XMLSchema
Generation
Models
Generator
26
Template set
Code
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: “
27
Documentation

Genova menu: Help/Documentation


Template Parser – describes the language
Code generators – describes the iterations
and substitution variables




28

Dialog Generator
Service Generator
Domain Generator
Database Generator
Installed in %GENOVA8_HOME%\doc
The template language






29

Sections
Directives
Substitution variables and template
parameters
Expressions/operators
Text functions
Macros
Generator setup
Genova in Eclipse
30
Questions


Everything clear?
Summer job?

Working on templates
31
Download