Top Banner
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.

Dec 24, 2015

Download

Documents

Janel Little
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

Page 2: 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

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

Who am I?

Knut Sagli, senior consultant in Esito

Contribute as an architect to Genova frameworks

3

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

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 Model driven development of user interfaces and services with Genova.

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 Model driven development of user interfaces and services with Genova.

Customers

6

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

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 Model driven development of user interfaces and services with Genova.

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

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

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 Model driven development of user interfaces and services with Genova.

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 Model driven development of user interfaces and services with Genova.

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 Model driven development of user interfaces and services with Genova.

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 Model driven development of user interfaces and services with Genova.

Outlined development model

Use case model

Scenarios

Domain model

Dialog model

User interface prototype

Style guideNavigation model

13

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

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 Model driven development of user interfaces and services with Genova.

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

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

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

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

Making a dialog model

17

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

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

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

Swing: Generated dialog code

19

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

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 Model driven development of user interfaces and services with Genova.

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 Model driven development of user interfaces and services with Genova.

Generated service code

22

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

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 Model driven development of user interfaces and services with Genova.

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 Model driven development of user interfaces and services with Genova.

Generation

Generator

Models

Template set

Code

26

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

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 Model driven development of user interfaces and services with Genova.

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 Model driven development of user interfaces and services with Genova.

The template language

Sections Directives Substitution variables and template

parameters Expressions/operators Text functions Macros Generator setup

29

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

Genova in Eclipse

30

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

Questions

Everything clear? Summer job?

Working on templates

31