Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

© 2004 Mesan AS. All rights reserved. Effektiv utvikling av enterpriseapplikasjoner med Java / Swing / J2EE Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post:

Liknende presentasjoner


Presentasjon om: "© 2004 Mesan AS. All rights reserved. Effektiv utvikling av enterpriseapplikasjoner med Java / Swing / J2EE Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post:"— Utskrift av presentasjonen:

1 © 2004 Mesan AS. All rights reserved. Effektiv utvikling av enterpriseapplikasjoner med Java / Swing / J2EE Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post:

2 © 2004 Mesan AS. All rights reserved. Mesan •Ledende i Norge mht MDA-basert J2EE systemutvikling •Har års bred erfaring fra utvikling av store, virksomhetskritiske systemer. •Sertifisert OptimalJ-partner med Compuware

3 © 2004 Mesan AS. All rights reserved. Agenda •Hva er utfordringen(e)? •Hvordan kan vi møte utfordringen(e) med teknologi? –Generelle egenskaper –Overordnet arkitektur –Swing-arkitektur •Hva med effektivitet, kodekvalitet og vedlikehold? –Forretningsmodellering –Kodegenerering •Live Demo: Vi lager en J2EE/Swing- applikasjon

4 © 2004 Mesan AS. All rights reserved. Hva er utfordringene? •Hvordan tilpasse systemer til endringer i virksomheten? – Time to market •Hvordan skal vi gjøre utviklerne mer effektive? – “Do more with less” •Hvordan kan vi sikre deltagelse for fagpersonell i IT-prosjektene? – ”User involvement” •Hvordan skal vi sikre at Best Practices, standarder og retningslinjer følges? •Hva skjer ved oppgradering til ny basisprogramvare?

5 © 2004 Mesan AS. All rights reserved. Hvordan ønsker vi å jobbe? •Forretningsrettet utvikling –Virksomhetens behov styrer prioritering –Brukere / superbrukere deltar i utviklingsprosessen –Mer fokus på hva vi skal lage enn hvordan •Iterative prosesser –Prototyping –Hyppige leveranser –Frihet til å gjøre endringer •Kortest mulig vei fra ide til synlig produkt / løsning

6 © 2004 Mesan AS. All rights reserved. Hva bør teknologien tilby? •Visuell utvikling –Modeller (som varer hele systemets levetid) –Visuell utvikling av brukergrensesnitt •Grafisk dialogeditor •Enkel kobling mellom data og visning •Muligheter for å vise testdata •Lav teknologisk kompleksitet... eller hjelp til å håndtere teknologisk kompleksitet •Basisfunksjonalitet (CRUD) –Kodegenerering eller funksjonsbiblioteker •Versjonshåndtering av kildekode

7 © 2004 Mesan AS. All rights reserved. Hvordan får vi det til med Java / J2EE / Swing? •Model View Controller –Scope HMVC-implementasjon •Modellbasert utvikling –Utviklingsmiljøet OptimalJ •Kodegenerering –Egenutviklet Swing-generator

8 © 2004 Mesan AS. All rights reserved. Swingapplikasjon Overordnet arkitektur EJB / DAO EJB Facade Objects Model ObjectsScope HMVC Swing GUI Database Klient App Server Db Server

9 © 2004 Mesan AS. All rights reserved. Swingklient Generisk design

10 © 2004 Mesan AS. All rights reserved. Scope HMVC •Open Source prosjekt – (http://scope.sourceforge.net/index.html) •Infrastruktur for å binde modeller til views med full to-veis synkronisering –Hierarkisk Model View Controller (HMVC) •Støtter Servlet, XML/XSLT og SWING •Wrappere til en rekke swing widgets (data binding og validering): –Button, ComboBox, Checkbox, Listbox, Panel, RadioButton, Table, TextField, MenuItem, Label, Password Field, Slider, Textarea... •Støtter integrasjon med IDE •Inneholder kodegenerator og test suite (Junit)

11 © 2004 Mesan AS. All rights reserved. Gevinster med Scope •Enkelt å sette opp databinding mellom view og modell / submodell –To-veis synkronisering med ”Aktive” modeller som kringkaster endringer i state •Innebygget inputvalideringsfunksjonalitet •Eventhandling skilt fra presentasjon •Subkontrollere kan la kontrollmeldinger ”boble” opp til hovedkontroller •Støtte for språktilpasning av ledetekster og meldinger

12 © 2004 Mesan AS. All rights reserved. View Scope - virkemåte Controller Model SelectorWidget Selector Control SubModel Selector

13 © 2004 Mesan AS. All rights reserved. Scope - eksempel  Modellen: public class ActivemodelModel extends BasicModel { private String name; public final static Selector NAME = Selector.fromString(”name"); public String getName() { return name; } public void setName(String inName) { name = inName; fireModelChange(VALUE_CHANGED, NAME); }  I viewet: STextField t = new STextField(); t.setColumns(20); t.setSelector("name");

14 © 2004 Mesan AS. All rights reserved. Scope - HMVC View Controller ModelView Controller ModelView Controller Model

15 © 2004 Mesan AS. All rights reserved. Hvordan sikre produktivitet, kodekvalitet og bruk av standarder?

16 © 2004 Mesan AS. All rights reserved. Produktivitet Kompleksitet reduserer produktivitet Productivity Time 70’s J2EE Kompleksitet • Multi- language • Multi-tier • Multi Channel • Scalability 80’s 90’s 00’s 4GL Java COBOL C/C++

17 © 2004 Mesan AS. All rights reserved. Utviklingsteam Kunnskapsoverføring Sikre bruk av best practices, standarder & retningslinjer Systemarkitekter Definere • Overordnet applikasjons- arkitektur • J2EE ekspertise • Teknologistandarder • Utviklingsstandarder • Best practices • Patterns • Code templates • Metoder • Modeller Implementere • Applikatsjons- arkitektur • Teknologi- standarder • Utviklings- standarder • Best practices • Patterns • Code templates • Metoder • Modeller Gjennomsyn og retting û Feilaktig implementert arkitektur û Teknologistandarder ignorert û Avvik fra utviklingsstandarder û Feiltolkning av best practices û Patterns/templates ikke brukt û Modeller laget på nytt (unødig)

18 © 2004 Mesan AS. All rights reserved. • PIM –Representerer forretningsfunksjonalitet, egenskaper og relasjoner uten teknologi- detaljer • PSM –Beskriver komponentene i applikasjonen –Genereres fra PIM modellen. –Beskriver teknologispesifikke komponenter (J2EE,.NET, Web Services etc) • Code Model –All kildekode i applikasjonen –Kildekoden genereres fra PSM-modellen –Skriver forretningslogikk i free blocks i kildekoden Platform Independent Model Code Model Platform Specific Model MDA - modelldrevet arkitektur •Fokus på hva man skal løse (mer enn hvordan ) •Modeller på forretningsnivå sikrer lang levetid •Forenkler håndtering av kompleks teknologi

19 © 2004 Mesan AS. All rights reserved. Kunnskapsoverføring Med MDA Systemarkitekter Platform Independent Model Code Model Platform Specific Model Teknologi- Transformasjon Teknologi- Transformasjon Kode- transformasjon Kode- transformasjon Transformasjoner

20 © 2004 Mesan AS. All rights reserved. Effektivitet og Kvalitet •Modellbasert utvikling og kodegenerering –Håndterer repetitiv kodeimplementering –Teknisk design implementeres i kodegeneratoren –Generering bør ha sitt opphav i modeller •Vårt valg : Utviklingsmiljøet OptimalJ (basert på MDA) –Utviklet egen kodegenerator i OptimalJ for generering av Swing-klienter –Swing-klientene baserer seg på persistens- funksjonalitet generert fra OptimalJ

21 © 2004 Mesan AS. All rights reserved. Transformasjoner i OptimalJ •Funksjonalitet for å definere egne –transformasjoner –metamodeller •Funksjonalitet for å lage transformasjoner •Eget scriptspråk for kodegenerering – TPL PIM ( MOF) Code Model PSM ( MOF) Teknologi- Transformasjon (Java) Teknologi- Transformasjon (Java) Kode- Transformasjon (TPL / Java) Kode- Transformasjon (TPL / Java)

22 © 2004 Mesan AS. All rights reserved. Kodegenerering i OptimalJ Tilpasning og nyutvikling •Utvikling av nye generatorer •Tilpasse eksisterende  Full fleksibilitet  Mer arbeid ved oppgraderinger •Tilby hooks (Joinpoints) Som gir mulighet til å utvide eller overstyre  Gir god nok fleksibilitet  Enklere ved oppgraderinger Baseline Pattern Joinpoint A Joinpoint B My 1 st Pattern My 2 nd Pattern

23 © 2004 Mesan AS. All rights reserved. Template Pattern Language – TPL Code snippet [GUARD("ValueObject",wDataClass)] [FREE("Imports")] // Place your imports here... [/FREE] public class [UCF(VALUEOBJECTNAME(wDataClass))] extends BasicModel implements DynamicReadOnly{ private boolean changed; private boolean created; public [UCF(VALUEOBJECTNAME(wDataClass))](){ [SUBVALUEOBJECTINIT(wDataClass)] this.changed = false; this.created = false; } public boolean isChanged(){ boolean returnValue = this.changed; [FREE("isChangedPre")] //Your code here [/FREE] [SUBVALUEOBJECTCHANGED(wDataClass)] [FREE("isChangedPost")] //Your code here [/FREE] return returnValue; } [/GUARD]

24 © 2004 Mesan AS. All rights reserved. Kodegenerator - Utviklingsprosess •Utvikle referanse- implementasjon –Definere teknisk design –Implementere løsning –Test og verifiser •Utvikle metamodell og kodegenerator –( Avgjør behov for metainformasjon ) –( Implementer metamodell ) –Lag kodegenerering med utgangpunkt i kode fra referanseimpl. –Test kodegenerator på referansemodell Platform Independent Model Code Model Platform Specific Model Teknologi- Transformasjon Teknologi- Transformasjon Kode- transformasjon Kode- transformasjon

25 © 2004 Mesan AS. All rights reserved. Mesans SWING pattern - Asta •Prosjekt –Stort arkiveringssystem (4+ MNOK) –Erstatter eksisterendeløsning for å oppnå mer fleksibilitet mht •Deployment •Funksjonalitet og struktur •Utfordringer –Komplekse datastrukturer –Rikt brukergrensesnitt – bruk av Java / Swing •Løsning –Persistensmodellen modellert som Domenemodell i OptimalJ –Utviklet kodegenerator for Swing i OptimalJ –Baserte Swing GUI på ”Scope” HMVC-implementasjon, og benyttet persistensfunksjonalitet generert fra OptimalJ

26 © 2004 Mesan AS. All rights reserved. Asta

27 © 2004 Mesan AS. All rights reserved. Asta

28 © 2004 Mesan AS. All rights reserved. Asta

29 © 2004 Mesan AS. All rights reserved. Asta

30 © 2004 Mesan AS. All rights reserved. Demo Vi bygger en SWING/J2EE-applikasjon

31 © 2004 Mesan AS. All rights reserved.

32 Referanser Mesans kunder på MDA og OptimalJ -AtosOrigin -Dagbladet -Stiftelsen Asta i samarbeid med Riksarkivaren -WesternGeco Mesan benyttes som foredrags- og kursholder -Universitet i Oslo (UiO) -ECOOP -JAAO

33 © 2004 Mesan AS. All rights reserved. - når standardsystemer ikke er nok Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post:


Laste ned ppt "© 2004 Mesan AS. All rights reserved. Effektiv utvikling av enterpriseapplikasjoner med Java / Swing / J2EE Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post:"

Liknende presentasjoner


Annonser fra Google