model gedreven ontwikkelen bij centric · doel: opnieuw bouwen van ... moderne gebruikersinterface....
TRANSCRIPT
MODEL GEDREVEN ONTWIKKELEN bij CENTRIC
Edwig Huisman
Corné Versteegh
4 juni 2009
MODEL DRIVEN EXPERIENCE 2009
Eerst even kennismaken...
Edwig Huisman∟ …Technisch Product Manager: Woningcorporaties
Corné Versteegh∟ ...Software Architect : Werk Inkomen Zorg
CENTRIC∟ ..de grootste niet-beursgenoteerde IT organisatie van Nederland
In het nieuws
Kerncijfers II: aantal medewerkers (gem.)
0
1000
2000
3000
4000
5000
6000
7000
8000
93 94 95 96 97 98 99 00 01 02 03 04 05 06 07
ICT Dienstverlening totale Centric-organisatie
Een aantal strategische branches
Lokale en centrale overheid / WIZ
Financiële dienstverlening
Woningcorporaties/commercieel vastgoed
Groothandel
Retail
Reiswereld
Zorg
Techniek
Centric-vestigingen
Centric is actief in:
∟ Benelux
∟ Duitsland
∟ Noorwegen
∟ Roemenië
∟ Verenigd Koninkrijk
∟ Zweden
∟ Zwitserland
Programma
Wie / Wat is Centric (zie hiervoor)
M_twize : Hoe werkt dat
BRE4all : Hoe werkt dat
Ervaringen met model gedreven ontwikkelen
Waarom 2 MDA omgevingen bij Centric
Historisch gegroeid
∟ BRE4all / WOCAS4all kwam van “Kramers Automatisering”
∟ m_twize uit de “Gemeentelijke Overheid” tak (CIOB, Siemens Nixdorf)
Binnen Centric bestaat een grote autonomie van onderdelen
M_twize is begonnen als standaardisatie project voor GWS4all
M_TWIZE
<m_twize>
Twee keer M: Model en Module
< >: XML, XSLT
WIZ: Werk inkomen en Zorg
GWS4all
Geïntegreerd Welzijns Systeem
In gebruik bij een kleine 350 Sociale Diensten
Voor het grootste deel geschreven in Uniface (4GL)
Ontwikkeling begonnen in 1989 (als SDMS)
∟ 20 modules
∟ ongeveer 1400 entiteiten
∟ meer dan 6300 componenten
Na 15 jaar doorontwikkelen:
Organische (maar soms stormachtige) ontwikkeling, zonder strakke
standaarden en richtlijnen
Verschillende ontwikkelstijlen en „cultuurlagen‟
Slecht gedocumenteerd
Steeds moeilijker te onderhouden
ZO KAN HET NIET LANGER!!!
Doel:
Opnieuw bouwen van de onderhoudsschermen uit GWS4all
Op een gestructureerde manier
Met een consequente, moderne gebruikersinterface
Middel:
Een functioneel model
∟ Zo declaratief mogelijk
Transformaties
∟ van model naar code
∟ van model naar documentatie en rapportages
Een generieke machine
∟ waarbinnen de gegenereerde code kan draaien
De m_twize-flow
Modelbeschrijving
Model repository(XML)
Functionele documentatie
Technische documentatie
Uniface Model(datamodel en business rules)
.NET Object-model
ComponentenComponentenUnifacecomponenten
Modelbeschrijving
Generieke code
Grotendeels genereren
ASPX.NET
Het ontwikkelproces
Modelleren
Parsen van model
Codegeneratie op basis van model
Painten Uniface-schermen
Programmeren resterende code (5%)
Assemblage: Samenvoegen van alle onderdelen
Het m_twize-model
Twee hoofdaanzichten:
∟ Gegevensmodel & Bedrijfslogica
∟ Gebruikersinterface & Programmasturing
Model: Een willekeurige validatie
Module: een willekeurig deelscherm
Het eindresultaat:
Toekomst
Generatie van een ASPX.NET front-end in de nieuwe Centric stijl
Op de langere termijn: generatie van bedrijfslogica in .NET
Research: project Oslo
GWS4all in de nieuwe Centric stijl
BRE4all
BRE4all
BRE4all : Business Rules Editor
4all : Omdat alle strategische producten van Centric “4all” heten
WOCAS4all : WOningCorporatie Adminstratie Systeem
De omvang van WOCAS4all
Iedereen verkijkt zich op de omvang (net China)
WOCO functionaliteit is 10.000+ aan functiepunten
Vele integraties met pakketten van andere ISV‟s
∟ 90+ koppelingen
Bestrijkt drie niet overlappende vakgebieden
∟ Aannemerij
∟ Verhuur
∟ Financiële administratie
Data
Model
Meta-Model
PRONTO
PRONTO
WOCAS4all
BRE4all
Database
Abstractie van het model
BEPERKINGSDEEL
BPD
BEPERKING
SCHERMONDERDEEL
SCHERM
METAMODEL BRE4all SCHERM
SC
HOOFD
SCHERM
DEEL
SCHERM
MUTATIE FRAMEQUERYINFO LIJST TABLAD
SO
VELDDEEL
SCHERM
VERW SELECTIETEXTINFO MEMO OLE/OCX
KNOP
VERVOLG
KEUZE
PARAMETER
EVENT
EXPRESSIE
BP
GBP VRIJ
CONCEPT
RETURN
EIGEN
SCHAP
VELD WAARDE
VENSTER
METHODE
Alle aspecten van een applicatie worden ondersteund
Datamodellering
Interfaces (vensters)
Business logica
Server functies
Rapportages
Brieven
Taakverwerker
Autorisatie
Externe interfacing
Historische opslag 2D
(D)Com en Active/X
Gemodelleerde
legacy conversie
Koppelingen
SOAP-XML
Webservices
Versiebeheer
Releases, patches
Efficiency van het model
Géén screen painter = Veel snelheidswinst
Programmeren in het Nederlands met Nederlandse commando‟s
TO (Technisch Ontwerp) wordt gegenereerd in HTML / CHM
Rapportages en impact analyses lopen via het model
Alle applicatie functionaliteit is er in opgeslagen
HET MODEL = DE APPLICATIE
Toekomst van BRE4all
Twee Hoofddoelen:
1) Eigen programmeertaal aanvullen met C# scripting
∟ Sluit meer aan bij de „CV‟-drang van menig programmeur
2) Een AJAX enabled WEB interface
∟ Sluit aan bij de nieuwe Centric Styleguide voor applicaties
GEDEELDE ERVARINGEN
MDA : Het voordeel van een model
Hier trekken we conclusies uit de vergelijking van m_twize en
BRE4all op basis van de MDA ervaringen
Voordelen
Nadelen
Doorlooptijden
Verschillen en overeenkomsten
Vergelijking BRE4all en m_twize
Aspect BRE4all m_twize
Begonnen in 1995 2005
Eerste toepassing WOCAS4all GWS4all
Soort bouw Nieuwbouw Vernieuwing
Beslaat gehele pakket Ja Nee
Verdere toepassingen LEASE4all, ITIL4all Nog niet
Taal v.h. model 5 GL Functioneel model
Onderhoud model BRE4all IDE Gestandaardiseerde
Word-documenten
Opslag model Database XML
Runnen/Codegeneratie Runnen Codegeneratie
Gebruikte technieken C++ / ODBC Xslt, Uniface, .NET
VOORDELEN
Snelheidswinst
∟ BRE4all: 2 a 4 uur per FPA
∟ M_twize: niet gemeten, maar wel bewezen
Betrouwbaarheid
∟ M_twize: Door structuur is code overal gelijk
∟ BRE4all: Er is maar één stuk code (Pronto)
Beheersbaarheid
∟ BRE4all en m_twize: Vrijheidsgraden zijn sterk afgenomen
∟ BRE4all en m_twize: Alles heeft dezelfde structuur
NADELEN
Eigen tools kosten tijd en geld
Er onstaat een tweede productielijn binnen de organisatie
Investeringen in het tool worden als een last op het commerciële
product gezien en moeten daarom daarop terugverdiend worden
Rigiditeit wordt soms/vaak als een belemmering gezien
Niet alle klant wensen zijn in te willigen
Klantwensen moeten 2 versies vooruit ingepland worden
DOORLOOPTIJDEN
De totale doorlooptijd van een ontwikkeltraject van een onderdeel
van de applicatie is afgenomen door de grotere controle op de
structuur.
De voorspelbaarheid is toegenomen.
Daardoor is een betere releaseplanning vooraf af te geven. (SLA „s!)
Let op:
Doorlooptijden kunnen dus verhoogd worden als een ontwikkeling
de generator „raakt‟!
DOORLOOPTIJDEN (2)
Scheiding van functionaliteit en techniek:
Applicatie programmeurs kunnen /moeten zich geheel en al
toeleggen op de te bouwen functionaliteit (applicatie logica voor de
business)
Uitstapjes naar de techniek zijn voorbehouden aan de mensen die
de ontwikkelstraat onderhouden. (4 ½ bij BRE4all / 2 bij m_twize)
Nog een paar praktische voordelen
Rapportage over het model zijn mogelijk
Impact analyse a.d.h.v. het model is mogelijk
Generatie van een TO is mogelijk
BRE4all: Eventuele (zeer) grote aanpassingen toch doorvoerbaar
door centralisatie van generieke functionaliteit.
∟ Overgang naar andere database (Informix -> Oracle)
∟ Single – multi company overgang
Lessons learned
M_twize is gebouwd „Met de winkel open‟ , WOCAS4alll / BRE4all is
als R&D omgeving gebouwd, zonder directe commerciële binding.
Investering bij BRE4all is derhalve ook groter geweest.
Voor beide omgevingen geldt dat de „cost gaet voor den baet‟ .
Oftewel: de ontwikkel omgeving moet voorlopen en er moet geld in
gestopt worden om later hiermee applicaties te kunnen bouwen die
aan de klanteisen voldoen.
Intern moeten mensen bewust gemaakt worden van het feit dat bij
wensen en eisen die niet direct in de generator structuur passen er
minimaal 2 versies overheen gaan voordat een nieuwe feature
uitleverbaar wordt.
Opleiding van nieuwe medewerkers moet altijd intern geregeld
worden. Medwerkers kunnen niet van een uitzendbureau betrokken
worden. Kosten hiervan zijn ook niet laag. Oplossen van tijdelijke
pieken in de productiecapaciteit kan dus ook niet altijd met inhuur
geregeld worden.
Wanneer met MDA te beginnen?
De wil tot investeren in tools
Breed gedragen binnen de gehele organisatie
Bereidheid om het ontwikkelproces er op in te richten
Nadruk op kwaliteit die het oplevert boven flexibiliteit
Als u vragen heeft, kunt u ze nu stellen.
MODEL GEDREVEN ONTWIKKELEN BIJ CENTRIC