Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

38
Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009

Transcript of Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Page 1: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT

Model Driven Development

Waarom en hoe te beginnen?

V5 20131009

Page 2: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 2

Inhoud

• Wat is MDD?• Hoe aanpakken• Redenen voor MDD• Back-up slides

Page 3: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 3

Wat is MDD?

Op basis van een functioneel model wordt automatisch (een deel van) de applicatie gerealiseerd, of door codegeneratie of door modelinterpretatie:

• Functioneel model: bijvoorbeeld in UML. Klassen, use cases, activity diagrams,…

• Automatisch: bijvoorbeeld elke klasse wordt een tabel. Dus uit het functionele model kunnen de tabellen gegenereerd worden.

• Applicatie: die waar men zich op wil richten.• Codegeneratie: voor elke programmeertaal mogelijk• Modelinterpretatie: het functionele model wordt runtime ingelezen en

uitgevoerd.

Page 4: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 4

Hoe aan te pakkenAtom Free IT automatiseer het automatiseren

Page 5: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 5

De gemiddelde bedrijfsapplicatie

• Ondersteunt een administratief bedrijfsproces• Waarin verschillende mensen taken moeten uitvoeren• Verwerkt data die aan bedrijfsregels moet voldoen• Moet secure, functioneel aanpasbaar, zo snel mogelijk klaar, altijd beschikbaar en

goedkoop zijn.• Heeft een webinterface• Heeft een database• Is gekoppeld aan andere applicaties volgens vaste protocollen (default: webservices)• Wordt door een projectteam gemaakt • Beheertaken worden bij voorkeur ad hoc toegewezen

Pas aan en zoek een project dat hier bij past

Page 6: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 6

Typische softwarekandidaten voor MDDvoor een bedrijfsapplicatie

• Technische elementen scheiden van de functionele. Denk aan beheerschermen, zoekschermen, selectieschermen, standaard adminstratiefscherm, transacties

• Database creatie

• Database ontsluiting

• Web forms

• GUI panels

• Business logica afhandeling

• Service interfaces

• Workflow control

• Standaard functionals: autorisatie, foutafhandeling, logging, …

• Standaard non-functionals die in de code hun neerslag vinden: security, SIG ****, …

Page 7: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 7

Het gemiddelde besturingssysteem (control system)

• Is een meet-en-regelsysteem• Meet input en output en legt/kent daar relaties tussen• Zet besturingsparameters• Waar verschillende mensen verschillende views op hebben. (van onderhoudsmonteur tot marketing manager)

• Stuurt hardware aan:• Met besturingsparameters• met timingrestricties en <100% up-time• Met een gedefinieerde interface• Met een kostbare vervanging en hoge investering

• Moet data leveren aan andere (software)systemen (voor administratie, workflow management, …)• Realiseert een trade-off tussen verschillende systeemkwaliteiten (al dan niet expliciet)

• Is gebaseerd op kennis van meerdere specialisten met eigen technische specialismen• Wordt door een projectteam gemaakt (evt met subteams)• Wordt beheerd door een team dat verantwoordelijk is voor meerdere systemen.

• Moet functioneel aanpasbaar, zo snel mogelijk klaar, altijd beschikbaar en goedkoop zijn.

Pas aan en zoek een project dat hier bij past

Page 8: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 8

Typische softwarekandidaten voor MDDvoor een control system

• Hardware besturing (bv. Patronen voor aanroepen, foutafhandelingen, uitval van hardware)

• Dataopslag, -toegang en -export

• Afhandeling van meet- en regellogica

• Interfaces voor workflow control, onderhoud, control applications, metrics,…

• Standaard functionals: foutafhandeling, logging, …

• Standaard non-functionals die in de code hun neerslag vinden: security, functionele integriteit, robuustheid.

• Simulatie van al het bovenstaande.

• In principe al de plaatsen in de software waar vaste eigenschappen gecombineerd worden met variabele eigenschappen. (Dat is bijna overal, maar niet overal in dezelfde mate)

• Overal waar de dure schaarse (domein)experts impact hebben op veel code.

Page 9: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 9

Randvoorwaarden

• MDD framework vereist commitment van betrokkenen:• Sales , Requirements engineers, Informatieanalisten, Functioneel Ontwerpers, Solution & Technisch Architecten,

Ontwikkelaars , Projectleiders , Testers, Delivery mgt, business mgt, SEC.

• Eigenaarschap op applicatieoverstijgend niveau

• Een MDD framework is een oplossing voor een business probleem, niet voor een technisch probleem.

• Ontwikkeling en beheer MDD framework scheiden van uitvoering van projecten.

• In projecten: MDD framework inbedding bij start (voor Agile: Sprint 0)

Page 10: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 10

Aan de slag

• Keuze maken:• Zelf bouwen (klein beginnen, uitbouwen)• Bestaande oplossing adopteren en (evt) doorontwikkelen?

• Tobago MDA (ADF Community, geïnitieerd door Capgemini),zie: http://www.accelerateddeliveryplatform.com/

• Be-Informed, Mendix, etc.• Onderzoek opties (project brief/business case)?

• Pilot:• Scope (stereotype projecten/technologie)• Lever bewijs (haalbaarheid/resultaten)• Plan implementatie/vervolg

Page 11: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 11

Aanpak voor pilotproject

• Op applicatieniveau:• Pilot project selecteren• Afstemmen met FO• Afstemmen met testen• projectprogrammeurs opleiden in MDD denken en doen (d.m.v. coaching).

Herbruikbare code identificeren.• Keuzes in bestaande templates/components/generators.• Tbv evaluatie: projectactiviteiten die projectspecifiek zijn scheiden van niet

projectspecifieke activiteiten.

Page 12: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 12

Aanpak

• Op applicatieniveau:• Pilot project • FO aanpak uniformeren. Bijv. UML en extensies daarop. Beginnen met een

gedeelte van FO.• projectprogrammeurs opleiden in MDD denken en doen (d.m.v. coaching).

Herbruikbare code identificeren.• Keuzes in bestaande templates/components/generators.

• Op projectoverstijgend (programma of business line) niveau:• MDD framework team inrichten.• projectbegroting scheiden van offerte

• Meer details over aanpak in framework initiatief.

Page 13: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 13

Aanpak: 3 parallelle sporen

1. Business impact: • Invulling marketing/business expliciet maken gedeeld beeld over de markt

(=typische klantvraag) en dus framework geschiktheid.• Redenering: een framework is een business asset die geschikt is voor bepaalde soort

software en ontwikkelwerkwijze

2. Framework inhoud:• Framework technologie koppelen aan businesscycle en ontwikkelproces/-organisatie• Inhoudelijke consistentie en levend houden

3. Werkwijze aanpassen: • Projectwerkwijze met framework expliciet maken• Mindset betrokkenen• Framework is business asset

Page 14: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 14

Spoor 1: business impact

• Marktbeeld opstellen: wat is typische business vraag?• Eerst op basis van ervaring (historie) in projecten : Technisch architecten,

Solution architecten, projectleiders• business in de lead brengen. (techneuten moeten niet in de lead zijn mbt de

typische klantvraag)• Onderscheid tussen vast en variabele expliciet maken.

• MT eigenaar en budgetering• Centraal• Management moet eigenaar zijn!• Welke functionaliteit (business) in de toekomst? (voor de roadmap)

Page 15: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 15

Spoor 2: Framework inhoud

• Uit de hobbysfeer (niet afhankelijk van een bereidwillige techneut): • Kernarchitect • Business owner

• Beginnen met verzamelen (meestal bestaan er al onderdelen)• Technisch architecten, programmeurs, functioneel ontwerpers

• Roadmap opstellen voor uitwerken framework• Beginnen bij identificeren van framework elementen• Deliverables definiëren:

• Zodat projecten framework kunnen uitwerken• Zodat beschikbare mensen altijd kunnen bijdragen• Aansluiten bij spoor 3

Page 16: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 16

Spoor 3: werkwijze aanpassen

• Projectwerkwijze met framework expliciet maken. Van business analyse tot en met beheer: • Acquisities: match tussen functionele scope en framework• Projectstart: wat wel/niet uit framework gebruiken• Projecteind: wat wel/niet naar framework brengen• Beheer: frameworkbeheer scheiden van applicatie-/productbeheer (=instantiebeheer)

• Mindset betrokken: standaardisatie• Marketing/business: Applicaties/producten die beter passen bij het framework zijn

goedkoper en sneller te ontwikkelen• Ontwikkelaars: Herbruikbaarheid en framework compatibiliteit• Projectleiders: Herbruikbaarheid als projecteis

• Framework is asset op projectcalculatie en IT-begroting

• Software development is niet de sluitpost en de bugfixer, maar de enabler en versneller.

Page 17: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 17

Hoe aanvliegen:

1. Business impact: Marktbeeld opstellen (=typische functionele vraag) • Eerst op basis van architectenervaring in projecten• business betrekken (en in de lead brengen)• MT eigenaar en budgetering

2. Framework beheer: content verzamelen• Technisch architecten beginnen: Framework architect is lead• Later ook FOn en PL.• Project support office kan administratie doen.

3. Werkwijze: • Projectstart en projecteind aanpassen in het proces.• Op centraal niveau trekken (solution architecten). Want alleen code en tools zijn

technologiespecifiek.

Page 18: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 18

Redenen voor MDDAtom free IT automatiseert het automatiseren

Page 19: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 19

Gegenereerde code is gemiddeld beter• Omdat er minder mensen nodig zijn om dezelfde functionaliteit te

bouwen kan meer tijd besteed worden om het handmatige werk te perfectioneren.

• Elk stuk code zit op dezelfde manier in elkaar:Een ontwerpfout komt dus overal voor en wordt veel eerder ontdekt en veel sneller opgelost.Het is goedkoper om iemand in te werken omdat er minder variatie in programmastructuur zit.

Page 20: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 20

Minder complexe taken

• Een functioneel ontwerper kan zich focussen op functioneel ontwerpen in een FO-taal.

• Een programmeur kan zich focussen op programmeertaal en hoeft het functioneel ontwerp niet functioneel te begrijpen.

• Een architect kan zich focussen op de architectuur en minder op de borging ervan.

• De klant/business kan zich focussen op klantbehoeften en hoe het systeem dat invult en niet op de communicatie met mensen die hem toch niet begrijpen (omdat ze een heel ander jargon spreken)

• Alleen nog maar testen met de klant en niet meer intern: validatie ipv verificatie.

Page 21: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 21

Het aantal regels code per programmeur per jaar is constant• Gegeneraliseerd: het aantal beslissingen (van een bepaalde soort) dat een mens per jaar kan nemen is constant.• Om applicatieproductiviteit te maximaliseren is het slim om te programmeren in een taal die dicht tegen

applicatiedomein aan zit• Dit is de basisgedachte achter domain specific languages.

• Om kwaliteit te maximaliseren en te garanderen is het zinvol om oplossingen te programmeren die zo direct mogelijk die kwaliteit bepalen. Kwaliteitseisen zijn stabieler dan functionele eisen.

• Dit is de basisgedachte achter “Aspect oriented design/programming”

• Om het maken van fouten te minimaliseren is het goed om het aantal (menselijke) beslissingen te minimaliseren. Dit is de gedachte achter “model driven development”

• Het combineren van het bovenstaande vraagt om een sterk conceptuele en mathematische aanpak. Het gevolg:• Een paar goede abstracte denkers• Een grote betrokkenheid van experts van applicatiedomein tijdens project en kwaliteitsdomein (bijvoorbeeld, performance, security)

over projecten heen. • Heel weinig programmeurs (factor 10 minder en om te beginnen factor 5)

• Richtlijn: codeer de dingen die stabiel zijn, parametriseer daarbinnen de dingen die instabiel (variabel) zijn

Page 22: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 22

NU: een lange foutgevoelige weg • Een domein expert(klant) zegt:

een product heeft een productnr

• Een reqs engineer/ info-analist schrijft op: een product heeft een productnr”

• Een (functioneel) ontwerper tekent een klassendiagram waarin een klasse product een productnr heeft

• Een programmeur programmeert een java-class product met attribuut productnr

• Een tester maakt een testcase om te kijken ofeen product een productnr heeft

• Een gui ontwerper tekent een productinvoerscherm met een veld productnr

• De databaseontwerper definieert een tabel product met kolom productnr

• 3 maanden later ziet de klant het resultaat en zegt: dat een productnummer ook letters kan bevatten

• 1 maand later is dat verwerkt

Page 23: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 23

Automatiseer het ontwikkelen

Mensen (ontwikkelaars):• Maken fouten• Hebben ambities en een agenda

• Vinden het vervelend om telkens hetzelfde te doen en leuk om nieuwe dingen te bedenken

• Werken allemaal anders en onvoorspelbaar

Machines (software):• Doen dingen foutloos• Hebben geen ambities of

goede/slechte dagen• Zijn heel goed en snel in

hetzelfde doen op elk gevraagd moment

• Hebben alleen gespecificeerde verschillen

Laat Machines werken

enMensen denken

Page 24: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 24

MDD: van requirement naar resultaat• Een analist onderkent en modelleert samen met de klant dat een businessklasse product een

eigenschap productnr heeft.

• De codegenerator zorgt voor:• Een productscherm met een veld productnr• Een producttabel met kolom productnr komt• Een class voor de afhandeling van productlogica• De koppeling tussen het scherm, class en tabel

• De klant ziet dezelfde dag nog op het scherm dat het productnr ook letters kan bevatten, hetgeen diezelfde dag nog aangepast is.

Page 25: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 25

Functionaliteit vs. kosten

KOSTEN

FUNCTIONALITEIT (FP)

huidig traject

MDD traject

Page 26: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 26

Meerdere trajecten (incl. bouwen aan engine)

KOSTEN

FUNCTIONALITEIT (FP)

huidig trajecten

MDD trajecten

Page 27: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 27

Voordelen MDD

• Kwaliteit:• Early feedback => minder impact door foute requirements (beating Boehm)• Hergebruik van denkwerk (best practices)• Domeinexpert kan in eigen taal communiceren• Garanderen softwarearchitectuur door automatiseren

• Efficiëntie:• Significant deel van het werk wordt snel en foutloos gedaan• Uren per functiepunt veel minder door hergebruik• Minder testen door generatie en Model Based Testen

• Sourcing:• Programmeurs minder kennis van applicatiedomein nodig

klantkennis minder belangrijk• Structuur van applicaties uniform inleertijd veel korter• Het “domme werk” wordt (foutloos) gedaan; uitdagend werk blijft.• Generator code kan off-site ontwikkeld worden

Minder tijd voor maken

Meer tijd voor de business

Page 28: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 28

Back-up slidesAtom Free IT automatiseert het automatiseren

Page 29: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 29

Framework based development uc Use Case View

project team

Develop application

Framework team

manage and develop CoE

framework

Set up application framework

Sales

Determine target market

Determine application

requirements

Delivery manager

project customer

Enhance framework from

project

Coe Strategy

CoE management

Match framework with customer

request

Page 30: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 30

Tussen Framework en applicatie

class Logical View

Functionele eis

Application framework

Architecture (principle)

kwaliteitseis

Framework

- vision

Target template

Application specific code

basic component

Application code

Applicatie-eis

Tool

Way of Working

CoE Framework

Business Driver

Sogeti strategic

choice

Market Driver

sales info

adheres to

reflects

based on

realizes

realizes

Page 31: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 31

Past and future of sofware development

Page 32: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 32

Voorbeeld (o.b.v. Tobago MDA)

Bron: http://www.accelerateddeliveryplatform.com/

Code generator

Page 33: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 33

Aandachtspunten implementatie

• MDD raakt alle betrokkenen in hun werkwijze:• Requirements Analisten/ informatie-analisten• Functioneel Ontwerpers• Solution & Technisch Architecten• Ontwikkelaars • Projectleiders • Testers• IT mgt• Begroters

• Agile uitvoering/besturing van projecten.

• Ontwikkeling MDD framework scheiden van uitvoering van projecten.

Page 34: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 34

Aanleiding

• Significante verbetering van productiviteit nodig• Klantwaarde: werkende oplossingen die voldoen aan

verwachtingen/afspraken:• functionele requirements en • vooral ook non-functionele requirements op gebied van security,

onderhoudbaarheid (SIG) etc.

• Doorlooptijd staat onder druk snelheid omhoog

• Marges onder druk kosten omlaag

Page 35: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 35

Hoezo MDD?

• Gebruik 1 bron (het functionele model)• Uniformeer/automatiseer vertaalproces• Stop vast gedeelte in MDD framework Minder fouten, minder tijdrovend

Page 36: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 36

Wordt geleverd door (very short list)Partner Mendix, MDD wordt toegepast in hun Sofware development en maintenance center

Partner van Mendix, Tobago, MDD collaboration project with Bancaja

Partner van Mendix, o.a. registratiesystemen voor ProRail

Initiator van Mod4J Open source MDD engine voor Java

Verschillende producten en Consultancy diensten rond MDD

MDD ingebakken in hun product, “Agile Business Suite”

MDD als core aanpak en toolset voor al hun ontwikkelingen.

Page 37: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 37

Wordt gebruikt door…. (very short list)Klant van Novulo, Planning software voor vliegtuigreparaties

Klant van Mendix, International claim handling,

Klant van Mendix. MDD ook toegepast voor o.a. het maken van software voor automatische tram besturing.

Ondersteund door IBM bij het inrichten van een MDD software straat die voor o.a. software in Opel AmperaVerschillende registratiesystemen gebruikmakend van Mendix

Klant van (IBM Rational), o.a. voor het genereren van drivers voor productlijn van printers

Klant van Mendix, Risc management, Billing en intercompany settlements

Klant van Be Informed. Polis beheer en claimafhandeling voor verzekeringen.

MDD breed toegepastMDD wordt vandaag de dag al breed toegepast bij verschillende bedrijven. (Potentiële) klanten gaan daarvoor naar leveranciers om een MDD oplossing te krijgen voor hun applicatiebehoeften

RBS, Agis, Bouwfonds, Mamoet, HST, Kwik Fit, De telegraaf, We, Achmea, General Electric, Marlies Dekker, Roche, Sandd, Detail Result, Menzis, Belastingdienst, Douane, Genzyme, Arch, Sanoma Uitgevers, Lockheed Martin, General Motors,Visiro, Curalis, Career Centre, DebtorOnline, Bekaert Textile Group, Dindirect, Openbaar Ministerie, IND, Raad voor de Rechtsbijstand, Logius, Overheidsbrede zoekdienst, CAK, Ministerie van VWS (Regelhulp),Centraal Beheer Achmea, ABN AMRO , Delta Lloyd, Eureko, 2-in-1 Car Insurance, Kadaster, ProRail, Post NL,KLM/Air France, Agis, Samsung, IBM, Ordina, Unisys, Atos, Cap Gemini, Centric, Bancaja

Page 38: Atom Free IT Model Driven Development Waarom en hoe te beginnen? V5 20131009.

Atom Free IT 38

Codegeneratie

Code generator

Systeemdocumen-tatie

TestScripts(MBT)

Software conformarchitectuur

Optioneel ook