15
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

Development with Genova - Forsiden with Genova ... Bean ©LQWHUIDFH ... Architechture Dialog Designer Service Designer Domain Designer JFC/swing Java/EJB

  • Upload
    vonhu

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

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

15

Genova in Eclipse

30

Questions

Everything clear?

Summer job?

Working on templates

31