beginnen met MDD v6

Report
Atom Free IT
Model Driven Development
Waarom en hoe te beginnen?
V5 20131009
Inhoud
• Wat is MDD?
• Hoe aanpakken
• Redenen voor MDD
• Back-up slides
Atom Free IT
2
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.
Atom Free IT
3
Hoe aan te pakken
Atom Free IT automatiseer het automatiseren
Atom Free IT
4
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
Atom Free IT
5
Typische softwarekandidaten voor MDD
voor 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 ****, …
Atom Free IT
6
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
Pas aan en zoek een project
dat hier bij past
• 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.
Atom Free IT
7
Typische softwarekandidaten voor MDD
voor 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.
Atom Free IT
8
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)
Atom Free IT
9
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
Atom Free IT
10
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.
Atom Free IT
11
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.
Atom Free IT
12
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
Atom Free IT
13
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)
Atom Free IT
14
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
Atom Free IT
15
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.
Atom Free IT
16
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.
Atom Free IT
17
Redenen voor MDD
Atom free IT automatiseert het automatiseren
Atom Free IT
18
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.
Atom Free IT
19
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.
Atom Free IT
20
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
Atom Free IT
21
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 of
een 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
Atom Free IT
22
Automatiseer het ontwikkelen
Mensen (ontwikkelaars):
Machines (software):
• Maken fouten
• Doen dingen foutloos
Laat
• Hebben ambities en een agenda • Hebben geen ambities of
Machines werken
goede/slechte dagen
• Vinden het vervelend om telkens
• Zijn heel goed en snel in
en
hetzelfde te doen en leuk om
hetzelfde doen op elk gevraagd
nieuwe dingen te bedenken
moment
Mensen denken
• Werken allemaal anders en
• Hebben alleen gespecificeerde
onvoorspelbaar
verschillen
Atom Free IT
23
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.
Atom Free IT
24
Functionaliteit vs. kosten
huidig traject
MDD traject
Atom Free IT
25
Meerdere trajecten (incl. bouwen aan engine)
huidig trajecten
MDD trajecten
Atom Free IT
26
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:
Minder tijd voor maken

Meer tijd voor de business
• 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
Atom Free IT
27
Back-up slides
Atom Free IT automatiseert het automatiseren
Atom Free IT
28
Framework based development
uc Use Case View
Determine
application
requirements
Develop
application
project team
project customer
Set up application
framework
Match framework
with customer
request
Delivery manager
Framework team
Enhance
framework from
project
manage and
develop CoE
framework
Determine target
market
Sales
Coe Strategy
CoE management
Atom Free IT
29
Tussen Framework en applicatie
class Logical View
CoE
Framework
Architecture
(principle)
Sogeti
strategic
choice
sales info
Framework
-
vision
Way of
Working
realizes
Business
Driver
reflects
Tool
kwaliteitseis
Application
framework
basic
component
Target
template
adheres to
based on
Market Driver
Applicatie-eis
realizes
Application
code
Application
specific code
Functionele eis
Atom Free IT
30
Past and future of sofware development
Atom Free IT
31
Voorbeeld (o.b.v. Tobago MDA)
Code generator
Bron: http://www.accelerateddeliveryplatform.com/
Atom Free IT
32
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.
Atom Free IT
33
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
Atom Free IT
34
Hoezo MDD?
• Gebruik 1 bron (het functionele model)
• Uniformeer/automatiseer vertaalproces
• Stop vast gedeelte in MDD framework
 Minder fouten, minder tijdrovend
Atom Free IT
35
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.
Atom Free IT
36
Wordt gebruikt door…. (very short list)
Klant van Novulo, Planning software voor vliegtuigreparaties
MDD
breed toegepast
Klant van Mendix, International claim handling,
MDD wordt vandaag de dag al breed toegepast
bij verschillende
bedrijven.
klanten
Klant van Mendix.
MDD(Potentiële)
ook toegepast
voor o.a. het maken van
gaan daarvoor
naarautomatische
leveranciers om
MDD
software voor
trameen
besturing.
oplossing te krijgen voor hun applicatiebehoeften
Ondersteund door IBM bij het inrichten van een MDD software straat
die voor
o.a. software
Opel Ampera
RBS, Agis,
Bouwfonds,
Mamoet,inHST,
Kwik Fit, De telegraaf, We, Achmea, General Electric,
Verschillende registratiesystemen gebruikmakend van Mendix
Marlies Dekker, Roche, Sandd, Detail Result,
Menzis, Belastingdienst, Douane, Genzyme, Arch,
van (IBM
Rational),
voorMotors,
het genereren van drivers voor
SanomaKlant
Uitgevers,
Lockheed
Martin,o.a.
General
Visiro, productlijn
Curalis, Career
Centre,
DebtorOnline,
van
printers
Bekaert Textile Group, Dindirect, Openbaar Ministerie,
Klantvoor
vandeMendix,
Risc management,
Billing en intercompany
IND, Raad
Rechtsbijstand,
Logius, Overheidsbrede
settlements
zoekdienst,
CAK, Ministerie van VWS (Regelhulp),
Centraal Beheer Achmea, ABN AMRO , Delta Lloyd,
Klant van Be Informed. Polis beheer en claimafhandeling voor
Eureko, 2-in-1 Car Insurance, Kadaster, ProRail, Post NL,
verzekeringen.
KLM/Air
France, Agis, Samsung, IBM, Ordina, Unisys,
Atos, Cap Gemini, Centric, Bancaja
Atom Free IT
37
Codegeneratie
Code generator
Software conform
architectuur
Optioneel ook
Systeem
documentatie
Test
Scripts
(MBT)
Atom Free IT
38

similar documents