model gedreven ontwikkelen bij centric · doel: opnieuw bouwen van ... moderne gebruikersinterface....

44
MODEL GEDREVEN ONTWIKKELEN bij CENTRIC Edwig Huisman Corné Versteegh 4 juni 2009 MODEL DRIVEN EXPERIENCE 2009

Upload: hanguyet

Post on 26-Feb-2019

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

MODEL GEDREVEN ONTWIKKELEN bij CENTRIC

Edwig Huisman

Corné Versteegh

4 juni 2009

MODEL DRIVEN EXPERIENCE 2009

Page 2: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 3: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

In het nieuws

Page 4: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 5: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Een aantal strategische branches

Lokale en centrale overheid / WIZ

Financiële dienstverlening

Woningcorporaties/commercieel vastgoed

Groothandel

Retail

Reiswereld

Zorg

Techniek

Page 6: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Centric-vestigingen

Centric is actief in:

∟ Benelux

∟ Duitsland

∟ Noorwegen

∟ Roemenië

∟ Verenigd Koninkrijk

∟ Zweden

∟ Zwitserland

Page 7: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Programma

Wie / Wat is Centric (zie hiervoor)

M_twize : Hoe werkt dat

BRE4all : Hoe werkt dat

Ervaringen met model gedreven ontwikkelen

Page 8: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 9: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

M_TWIZE

Page 10: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

<m_twize>

Twee keer M: Model en Module

< >: XML, XSLT

WIZ: Werk inkomen en Zorg

Page 11: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 12: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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!!!

Page 13: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Doel:

Opnieuw bouwen van de onderhoudsschermen uit GWS4all

Op een gestructureerde manier

Met een consequente, moderne gebruikersinterface

Page 14: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 15: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 16: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Het ontwikkelproces

Modelleren

Parsen van model

Codegeneratie op basis van model

Painten Uniface-schermen

Programmeren resterende code (5%)

Assemblage: Samenvoegen van alle onderdelen

Page 17: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Het m_twize-model

Twee hoofdaanzichten:

∟ Gegevensmodel & Bedrijfslogica

∟ Gebruikersinterface & Programmasturing

Page 18: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Model: Een willekeurige validatie

Page 19: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Module: een willekeurig deelscherm

Page 20: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Het eindresultaat:

Page 21: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 22: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

GWS4all in de nieuwe Centric stijl

Page 23: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

BRE4all

Page 24: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

BRE4all

BRE4all : Business Rules Editor

4all : Omdat alle strategische producten van Centric “4all” heten

WOCAS4all : WOningCorporatie Adminstratie Systeem

Page 25: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 26: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Data

Model

Meta-Model

PRONTO

PRONTO

WOCAS4all

BRE4all

Database

Page 27: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie
Page 28: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie
Page 29: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 30: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 31: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 32: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... 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

Page 33: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie
Page 34: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

GEDEELDE ERVARINGEN

Page 35: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 36: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 37: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 38: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 39: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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‟!

Page 40: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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)

Page 41: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 42: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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.

Page 43: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

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

Page 44: MODEL GEDREVEN ONTWIKKELEN bij CENTRIC · Doel: Opnieuw bouwen van ... moderne gebruikersinterface. Middel: Een functioneel model ∟Zo declaratief mogelijk Transformaties ... Applicatie

Als u vragen heeft, kunt u ze nu stellen.

MODEL GEDREVEN ONTWIKKELEN BIJ CENTRIC

[email protected]

[email protected]