development with genova - forsiden with genova ... bean ©lqwhuidfh ... architechture dialog...
TRANSCRIPT
1
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
2
Who am I?
Knut Sagli, senior consultant in Esito
Contribute as an architect to Genova
frameworks
3
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
Esito4
3
Systemator 2.1
Esito history
Genova 6.1
Genova 7
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/Sysdul1998: Genova 6
1997: Genera
1996: Windows NT, SOV/SOL
1995: Systemator 5
1992: GUI
1989: Unix
80s: NSB, TAD
1980: Sysdeco
70s: Research
Systemator 4
Systemator 6.2
Genova 8
Genova 8.1
Genova 8.3
Genova 8.5
5
Customers6
4
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
Application
components
Prototyping
Generate
Modeling
Languages &
Techniques
Application
database
RationalRose
IterateEnterpriseArchitect
Genova
7
Generated models
act Reserv asjon
Ønske om reservasjon
Finn hotell
Velg romkategori
Opprett kunde
Opprett
reserv asjon
Reservert romMislykket reservasjon
[Ingen ti lgjengelige rom]
[Fullt hotell]
[Fullt i romkategori]
[Tilgjengelig rom]
[Eksisterende kunde]
[Ny kunde]
Client
Contr
oller
Hooks
Actions
Services
Hooks
Service
ORM
appin
g
Pers
iste
nce
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
5
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 changes9
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
6
Genova elements
Synchronizing with Enterprise Architect or
Rational Rose
Domain Designer
Service Designer
Dialog Designer
Generators
Dialog Designer Domain DesignerService Designer
11
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
7
Outlined development model
Use case model
Scenarios
Domain model
Dialog model
User interface prototype
Style guideNavigation model
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
8
Application architecture - Java
Generated by Genova
Genova framework
3. party framework
Written code
View
Controller
Spring
ServiceProxy
HooksActions
ServiceProxy
Logic/Actions/
Hooks
WS/EJB/PojoD
om
ain
model
Service interface
Hibernate
Database
ORmapping
Persistence
Serv
ice
Serv
ice
Serv
ice
Hooks
Dom
ain
model
15
Unit test architecture of Jouteur
Test view
Controller
Dom
ain
model
Data source
Service mock
HooksActions
Test
envir
onm
ent
Test data
files
Unit testsGenerated by Genova
Hand-written code
Test tools provided by Genova
16
9
Making a dialog model
17
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
Template
Dialog style guide
18
10
Swing: Generated dialog code
19
ICEfaces : Generated view codeclass 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
11
ICEfaces : Generated controller codeclass Generated controller code
ApplicationController
<ObjectSelectionName>Const
DialogController
<DialogName>DefaultController
<DialogName>Controller
«interface»
OSRole
<RoleName>Role
*
*
21
Generated service code2
2
12
Architechture
Dialog Designer
Service Designer
Domain Designer
JFC/swing
Java/EJB
Hibernate
Hibernate
xml
Java
Java/EJB
Templates Generated code
Dialog Model
Styleguide
Object Selection
Domain Model
Database ModelOracle.sql
Oracle
Genova
23
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
13
Generation
Generator
Models
Template set
Code
26
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
14
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%\doc28
The template language
Sections
Directives
Substitution variables and template
parameters
Expressions/operators
Text functions
Macros
Generator setup
29