Development with Genova Model driven development of user interfaces and services with Genova.

30
Development with Genova Model driven development of user interfaces and services with Genova

Transcript of Development with Genova Model driven development of user interfaces and services with Genova.

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 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

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

Customers

6

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

Generated models

act Reservasjon

Ønske om reservasjon

Finn hotell

Velg romkategori

Opprett kunde

Opprettreservasjon

Reservert romMislykket reservasjon

[Ingen tilgjengelige rom]

[Fullt hotell]

[Fullt i romkategori]

[Tilgjengelig rom]

[Eksisterende kunde]

[Ny kunde]

Client

Contr

olle

r

Hooks

Actions Services

Hooks

Service

OR

Mappin

g

Pers

iste

nce

Data access

Domain model

View

Data

base

uc Hotellvedlikehold

dialog::VisRomoversikt

dialog::VisHotell

dialog::FinnRomkategoriAnsatt

(from Aktører)

Finn romkategori

Vis alle hoteller i kjede

Vis romoversikt

for hotell

class Reservasjon

«Class»Reservasjon

«Attribute»- fradato: Date- id: int- tildato: 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

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

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

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

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

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 datafiles

Unit tests Generated by Genova

Hand-written code

Test tools provided by Genova

16

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

Swing: Generated dialog code

19

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

ICEfaces : Generated controller code

class Generated controller code

ApplicationController

<ObjectSelectionName>Const

DialogController

<DialogName>DefaultController

<DialogName>Controller

«interface»OSRole

<RoleName>Role

*

*

21

Generated service code

22

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

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

Generation

Generator

Models

Template set

Code

26

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

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

The template language

Sections Directives Substitution variables and template

parameters Expressions/operators Text functions Macros Generator setup

29

Genova in Eclipse

30

Questions

Everything clear? Summer job?

Working on templates

31