Utvikling med Genova. Agenda. Hvem er vi? Kursets struktur og forelesere. Modelldrevet utvikling av brukergrensesnitt og tjenester med Genova



Like dokumenter
Utvikling med Genova. Modelldrevet utvikling av brukergrensesnitt og tjenester med Genova

Agenda. Hvem er jeg? Modelldrevet utvikling av brukergrensesnitt og tjenester med Genova

Komme i gang med Genova 8

Utvikling med Genova. Esito. Agenda. Hvem er vi? Modelldrevet utvikling av brukergrensesnitt og tjenester med Genova

Modelldrevet utvikling av brukergrensesnitt og tjenester med Genova

Formål: I denne oppgaven skal du øve deg i å generere og endre GUI prototyper, samt lage database skjema på grunnlag av en UML modell.

OptimalJ-kurs UIO Oppsummering av kurset. De ulike modellene egenskaper og formål

Modellbasert utvikling

Persistens. Erik Arisholm. Institutt for informatikk Erik Arisholm INF1050-persistens-1

1 Kodegenerering fra Tau Suiten

Pipfrog AS Flere nettbutikker og språk

t Institutt for informatikk Erik Arisholm 13. mai 2009 INF1050-oppsummering-1

AUTOCAD Artikkelserie. Tabeller

INF1050 Systemutvikling

Kom i gang med emedia

case forts. Generell interaktor Integer- interaktor Domenemodell Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt

AMS-case forts. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

4. Dynamisk skjemaer (GUI)

MMT105 Internettprogrammering Uke 44, høst 2007

Genova810DokDomenemodell

CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA

GJENNOMGANG UKESOPPGAVER 4 USE CASE MODELLERING HELGA NYRUD & KRISTIN BRÆNDEN

UKE 11 UML modellering og use case. Gruppetime INF1055

Kravspesifikasjon med UML use case modellering. Erik Arisholm

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

UML 1. Use case drevet analyse og design Kirsten Ribu

case forts. Alternativ 1 Alternativer Sammensetning Objekt-interaktor med valg

INF5120 Oblig 1c4 - Gruppe 19

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

INF1050 Systemutvikling,

CORBA Component Model (CCM)

INF1050 Systemutvikling,

INF 1050 BRUK AV MODELLERINGSVERKTØYET RATIONAL ROSE

Kravhåndtering. Erik Arisholm. Simula Research Laboratory & Institutt for informatikk

Enkel app-programmering med JavaFX og FXML

AUTOCAD Artikkelserie. Fra Color til Named og omvendt

Spesifikasjon av Lag emne

file:///c:/users/michaelp/sites/dkdm/dw5/dreamweaver5_1.html

Integrasjon mot Active Directory i EK 2.37

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

Hvordan designe en ER-modell med MS-VISIO

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

Distributed object architecture

AMS-case forts. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

DI-Blankett. Minihefte

Oppgave 1: Multiple choice (20 %)

Use case drevet design med UML

Hei verden Introduksjon Swift PDF

BRUKERDOKUMENTASJON. SMS-kommunikasjon VERSJON 1 ( )

GAB INNSYN... 1 INNSTILLINGER... 1 Database... 1 Søk... 4 GENERELT... 5 Søkeutvalg... 5 GAB menyen... 6 VIS MENYEN... 6 Generelt...

1. NetBeans IDE: Lage en enkel mobilapplikasjon

Forelesning 1: Innledning

INF april, 2014 Stein Krogdahl Ifi, UiO. Svar på oppgaver til kap. 8

38. Utskrift - Master Layout

1. Opprette Workspace: Velg File, New Workspace. Angi Workspace name og location (hvor filene skal lagres). Trykk OK

INF1000: Forelesning 7. Konstruktører Static

NB! Endring i undervisningsplanen

Kursdokumentasjon for Dreamweaver

Bakgrunn Innlogging Brukere med tilgang Registrere infeksjoner Registrere antibiotika Registreringer...

Communicate SymWriter: R1 Lage en tavle

Beskjed fra Skagestein

>>21 Datamodellering i MySQL Workbench

Komme igang med App Inventor Introduksjon App Inventor PDF

INF1000: Forelesning 7

ADOBE ILLUSTRATOR. En introduksjon til ADOBE ILLUSTRATOR av Wictor L. Faanes TREIDER DESIGN

Omsetningsdatabasen i Fenistra Eiendom

buildingsmart Norge Guiden

SymWriter: R6 Innstillinger, preferanser og verktøylinjer

5. Brukerveiledning. Experior - rich test editor for FitNesse -

Datamodellering og databaser SQL, del 2

AMS-case. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

Brukerveiledning for SMS fra Outlook

Produktrapport Gruppe 9

Manual for innlegging av spesielt sideinnhold via «backend»

Løsningsforslag matoppskrifter modellering

Model Driven Architecture (MDA) Interpretasjon og kritikk

CORBA Objektmodell (Java RMI)

Dokumentstyring og Maler

HØGSKOLEN I SØR-TRØNDELAG

Use Case-modellering. INF1050: Gjennomgang, uke 04

Gruppenavn. Prosjektnavn Beskrivelse av design For Navn på systemet. Versjon <1.0>

Overvåkning av Telenors Mobile internettportal

MPEG-7. Problemstilling:

UNIVERSITETET I OSLO

Innhold. Innledning Del 1 En vei mot målet

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Fakturabehandling på web

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

Eksamen. Objektorientert Programmering IGR 1372

INF april, 2015 Stein Krogdahl Ifi, UiO. Svar på oppgaver til kap. 8. Ble lagt ut 24. april

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 12. februar 2019

Åsveien 9, 3475 Sætre Telefon: Mobiltelefon: Faks: E-post:

8 - Rapporter i M-STAS

Manual for bruk av Priseditor

Oppsett «Visma Contacts»

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Bachelorprosjekt 2015

Oppsummering. Thomas Lohne Aanes Thomas Amble

SolidPlant er perfekt for deg som jobber med design av rørsystemer og anlegg, og er kjent med SolidWorks.

Transkript:

Kursets struktur og forelesere Systemutvikling som helhet Utvikling med Genova Modelldrevet utvikling av brukergrensesnitt og tjenester med Genova 1. Systemutvikling: motivasjon... Jo Hannay, Simula & Ifi 2. Systemutviklingsprosessen... Rune Steinberg, Visma Software AS 3. Prosjektledelse og prosjektarbeid... Rune Steinberg, Visma Software AS Kunde/leverandør/bruker-forholdx 15. Oppsummering & eksamenstips Erik Arisholm 4. Kravhåndtering. Erik Arisholm, Simula & Ifi 16. Faglig sosial ettermiddag... Foreleserne og dere! 5. Avtaler & kontrakter... Jørgen Petersen, Promis AS Detaljert undervisingsplan: 6. Estimering...... Stein Grimstad, Simula uio.no/studier/emner/matnat/ifi/inf1050/v09/undervisningsplan.xml 7. Jus & etikk...... Dag W. Schartum, Senter for Rettsinformatikk x Systemets struktur og design 8. Modellering av krav med use cases Erik Arisholm, Simula & Ifi 9. Objektorientert analyse (2 forel.)... Erik Arisholm, Simula & Ifi 10. Persistens og databaser Erik Arisholm, Simula & Ifi 11. Arkitektur.... Dag Lorås, Visma Software AS Koding, validering og vedlikehold 1 12. Modellbasert utvikling med Genova Esito AS 13. Validering og verifisering (2 forel.)... Lionel Briand, Simula & Ifi 14. Konfigurasjonsstyring.. Hans Christian Benestad, Simula 2 Agenda Hvem er vi? Utviklingsmodell for Genova Kort demonstrasjon av generert system Gjennomgang g av Genovas byggeklosser Rose og Genova Objektseleksjoner i Genova Dialogdesign i Genova Ressursdatabasen på overflaten Produksjon av en ny dialog fra modell til prototype Hvem er vi? Christian Herzog, seniorkonsulent i Esito Knut Sagli, sjefskonsulent i Esito Esito utvikler verktøy og leverer spisskompetanse i prosjekter 3 4

Esito Esito skal gi kundene lavere kostnader og bedre kvalitet i utvikling og vedlikehold av sine applikasjoner Støtte modelldrevet utvikling (MDU) Lage de beste kodegeneratorer Genova tilbyr Finn romkategori Ønske om reservasjon Ansatt Finn hotell (from Aktører) [Fullt hotell] «Class» «Class» Reservasjon hotell::hotell Vis alle -hotell hoteller i kjede «Attribute» «Attribute» Velg romkategori - fradato: Date 0..* 1 - id: int - id: int - logo: String - tildato: Date - navn: String - sted: String [Fullt i romkategori] -reservasjoner 0..* 0..* -romkategori Vis romov ersikt «Class» -kunde 1 hotell::romkategori for hotell 1 «Class» «Attribute» kunde::kunde - antallsoveplasser: int - id: int «Attribute» - romkvalitet: ERomkvalitet - epost: String - sengtype: ESengtype t k d b tt i t Genova dialog:: FinnRomkategori dialog:: VisHotell dialog:: VisRomoversikt Client Service Data access Controller rhooks View Hooks Services Actions e Persistence g ORMapping Database Generated code Written code Domain model 5 5 6 Genova fra oven Genova og metode Genova Genova Genova UI Designer Service Designer Domain Designer Use case modell UI mal Modellutsnitt Domenemodell Scenarier Databasemodell Navigasjonsmodell Domenemodell Styleguide UI-modell Domeneklasser Dialogmodell Dialogmal Servicelogikk Database Objekt-Relasjons- Mapping Brukergrensesnitt prototype 7 8

Vi lager et lite system UML-modell Navigasjonsmodell Genova Workspace Synkronisering Setup Ressurser Objektseleksjon Dialogmodell Generering og kjørende kode Detaljert gjennomgang Rose og Genova Objektseleksjoner i Genova Dialogdesign i Genova Ressursdatabasen Kort om kodegenerering 9 10 Domenemodellen Rose og Genova Domenemodellen lages i Rose og hentes så inn i Genova via 11 NB! Det er ikke mulig å endre domenemodellen i Genova. Endringer gjøres i Rose og synkroniseres inn. 12

Navigasjonsmodellen Genova UI-dialogen i Rose - UserInterface Navigasjonsmodellen lages i Rose og hentes så inn i Genova via Denne teksten blir brukt som standard ledetekst i Genova. For å sikre konsistens mellom forskjellige dialoger bør derfor ledetekster t endres i Rose og ikke i Genova direkte. NB! Det er ikke mulig å endre domenemodellen i Genova. Endringer gjøres i Rose og synkroniseres inn. 13 14 Genova DB-dialogen i Rose - DataBase Når man skal lage en database, må man angi databaseorienterte verdier som Primary Key, Unique, Not Null osv. Objektseleksjoner (OS) i Genova For assosiasjoner kan man angi fremmednøkler. 15 16

Lage en objektseleksjon j (OS) Lage en objektseleksjon (OS) En objektseleksjon er et utsnitt av klassemodellen. Den kan inneholde flere røtter. Den første roten skal imidlertid være den primære roten. På bakgrunn av objektseleksjonen Ny objektseleksjon fra kan vi generere kode som gir oss kontekstsensitiv meny et sett av tjenester (bl.a. CRUD tjenester). Ved synkronisering mot Rose lages det automatisk tomme OS er for hver dialog angitt i navigasjonsmodellen. Man må velge målmiljø for en objektseleksjon. Kontekstsensitiv meny gir deg muligheten for å utvide utsnittet av klassemodellen som objektseleksjonen representerer. Ekskluder uønskede attributter fra objektseleksjonen 17 18 Lage en objektseleksjon (OS) Dobbeltklikk på rollen gir deg egenskapsdialogen til rollen. (Også tilgjengelig via kontekstsensitiv meny) Gir mulighet for å endre navn. Inneholder også nyttig informasjon om rollen Dialogdesign i Genova Generelt i Genova så gir både kontekstsensitiv meny og dobbeltklikk komponentens egenskapsdialog. 19 20

Lage en dialog En dialogmodell er bygget på en objektseleksjon En dialogmodell er et tre bestående av dialogkomponenter Ved synkronisering mot Rose lages det automatisk tomme dialoger for hver dialog angitt i navigasjonsmodellen 21 Lage en dialog Første gang g en dialog åpnes må følgende velges Informasjonsinnhold Skal være objektseleksjonen med navn lik dialognavn_os. Regler for generering Målmiljø for kodegenerering Vindustype 3 typer: Application window, (Kan endres i ettertid om ønskelig) Document window, DialogBox 22 Lage en dialog Setting og endring av ledetekster 1 2 1. Genova UI.Title i Rose 2. Tekstfelt.Title 3. Tekstfelt.Label.Title Høyeste prioritet å foretrekke 23 3 3 Jav a kod e 24

Flytting av elementer og angring Ta tak i elementet og trekk det dit du ønsker. Det røde punktet angir hvor det havner. Få elementet i riktig blokk. Dessverre ingen angring. Lagre hver gang du er sikker/fornøyd så langt og lukk dialogen (uten å lagre) når du beveger deg bort fra ønsket resultat. Dialogkomponenter - Generelt Merk: General arkivkortet varierer mhp. komponent, men for de fleste gjelder følgende Navn på dialogelementer, navnestruktur kan settes i Style guide Hver enkeltkomponent er tilordnet en template og style. Container-elementer er i tillegg tilordnet en layout via: Arv (fra komponenten over) eller Manuell spesifikasjon Unngå bruk av disse, bortsett fra ved skjulte blokker 25 26 Dialogkomponenter - Generelt Egenskaper ved de fleste dialogkomponentene Settes fortrinnsvis via overstyring av layout. I enkelttilfeller er det nødvendig å sette dette på enkeltkomponenter. (For eksempel listblokkelementer) Hvor mange kolonner komponenten skal strekke seg over. 27 Dialogkomponenter - Datafelt Komponent med knytning mot objektseleksjonen Har en av flere mulige representasjoner: Textfield Check Button Radio Group Combo Box (List, Scale, Stepper) Representasjons- avhengige egenskaper 28

Tilordning av attributt og ledetekst 2. 1. Viser alle attributter i objektseleksjonen som enda ikke er brukt i dialogen Ressursdatabasen Layouts 29 30 Ressursdatabasen i korte trekk Layout generelt Style guide: Når en dialog åpnes for første gang genereres det automatisk en dialogmodell. Datafeltene i denne dialogen baseres på den valgte objektseleksjonen. Den visuelle representasjonen av disse dataene baseres på den valgte style guiden. Template: Navngitt kombinasjon av Style og Layout per komponenttype. Style: Layout: Navngitt kombinasjon av for- og bakgrunns- farge, font, rammetype og størrelse. Navngitt kombinasjon av parametere for utlegg (posisjonering) av komponenter Colors, Fonts og Images angir henholdsvis farge, font og bilder. NB! Ikke noe vi skal endre. Vi skal kun bruke ressursene. 31 En layout gjelder kun for direkte barn av en container. (Den arves ikke nedover i treet. Ønsker man en arvet layout endring må man overstyre hvilken template som brukes.) Layouten satt i Kode2FeltBlokk gjelder kun for de markerte komponentene En blokk i en annen blokk regnes som enkeltkomponent,,på lik linje med f.eks. tekstfelt, med hensyn på ledetekstplassering, utstrekning, justering, osv 32

Layoutressurser Layoutressurser Navnet på layoutene er bygget opp slik: [...] = valgfritt Border = Konstant Direction, N, Align, Flex = variable Vi skal nå se på den visuelle betydningen av disse konstantene og variablene. d Direction Line/Column prefiks som betyr linje eller kolonnevis utlegg Label og felt er en enhet Foretrekker Line Line Column 33 34 Layoutressurser Layoutressurser d N = Antall kolonner i layouten. (De fleste layouter i ressursdatabasen har utlegg av komponenter linjevis.) Align angir justering av felter og ledetekster. Align = Left Centered Justified angir horisontal justering av ledetekster og felter per rad Left Justifie d Centere d n=3 n=3 35 1 kolonne for Ledetekster trukket Ledetekster høyrejustert mot ledetekster, 1 for felt, begge venstrejustert ut mot venstre, felt ut mot høyre midtkolonne, felter venstrejustert fra midten 36

Layoutressurser Layoutressurser Flex er består av tre elementer, de to første angir fleksibilitet, den siste hvor evt. ledig plass havner. Flex = Fixed Streched Spread angir horisontal fleksibilitet Flex = Fixed Streched Spread angir horisontal fleksibilitet Fixed Kolonnene gjøres så brede som sitt største element, plass ut over summen av kolonnene blir til overs Streched Kolonnene strekkes og kan bli bredere enn bredeste element, slik at all tilgjengelig plass fylles 37 38 Layoutressurser Layoutressurser d Flex = Fixed Streched Spread angir horisontal fleksibilitet Spread Border hvis layouten har en ramme (marg) NoBorder hvis layouten ikke har ramme Border (Med ramme) NoBorder (Uten ramme) Tar opp all plass, men her legges luften mellom kolonnene 39 40

Generering av kildekode Kort om kodegenerering Servicemaler Klientmaler Klientfil.java Klientfil.java Klientfil.java Klientgenerat Servicefil.java Servicefil.java Servicefil.java Servicegenerat Dataaccessmaler Generator Mappingfil.hbm.xml Mappingfil.hbm.xml Mappingfil.hbm.xml Dataaccessgenerat Domene.java Domene.java Domene.java 41 Domenemaler Domenegenerat 42 Klassemodell for generert dialogkode Klassediagram generert servicekode Skriv hooks Skriv hooks 43 44

Applikasjonsarkitektur - Java Generert av Genova Genova rammeverk 3. part rammeverk Generert av Rose Egen kode Do omain model View Controller Logic/Actions/ Actions Hooks Hooks ServiceProxy ServiceProxy Spring Service interface Domain model Service Service Service Persistence Hooks WS/EJB/Pojo Hibernate OR mapping 45 Database