Download - Model-gedreven software-ontwikkeling anno nu
![Page 1: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/1.jpg)
Atos, Atos and fish symbol, Atos Origin and fish symbol, Atos Consulting, and the fish itself are registered trademarks of Atos Origin SA. August 2006© 2006 Atos Origin. Confidential information owned by Atos Origin, to be used by the recipient only. This document or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos Origin.
MD*
Dick Eimers
Utrecht, 7 April 2008
Model-gedreven software ontwikkeling anno nu
![Page 2: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/2.jpg)
2 MD*Praatje @ SuperXPG
Model-gedreven Software Ontwikkeling
» Model-gedreven software ontwikkeling » een manier software ontwikkeling,» modellen zijn een intrinsiek onderdeel van de oplossing, » i.t.t. modellen enkel ter illustratie en documentatie.
» Propositie» verbeteren van kwaliteit en daarmee productiviteit,» vergroten van de platformonafhankelijkheid.
![Page 3: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/3.jpg)
3 MD*Praatje @ SuperXPG
Modellen
» Model» uitdrukken van structuur en gedrag van software » model entiteiten zijn abstracties uit het (probleem)domein
» Meta-model » is een model van het model (definitie modelleertaal)» beschrijft wat uitgedrukt kan worden in het model
» Synoniem: domein specifieke talen (DSL)
» Klassificaties» grafisch textueel (vorm)» internal/embedded external (voorkomen)» technisch business (type domein)
![Page 4: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/4.jpg)
4 MD*Praatje @ SuperXPG
Grafisch vs. Textueel
![Page 5: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/5.jpg)
5 MD*Praatje @ SuperXPG
Domein-specifieke talen
» De typische concepten van domein x via de taal beschikbaar
» Oplossingen voor vraagstukken binnen x kunnen beterbeter worden uitgedrukt.
» De taal heeft een hoger abstractie niveau.
» De taal heeft een beperkt toepassingsgebied.
![Page 6: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/6.jpg)
6 MD*Praatje @ SuperXPG
Voorbeelden
![Page 7: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/7.jpg)
7 MD*Praatje @ SuperXPG
Voorbeeld: Bladmuziek
![Page 8: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/8.jpg)
8 MD*Praatje @ SuperXPG
Voorbeeld: Graphviz’s dot
digraph G {
main -> parse -> execute;
main -> init;
main -> cleanup;
execute -> make_string;
execute -> printf;
init -> make_string;
main -> printf;
execute -> compare;
}
![Page 9: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/9.jpg)
9 MD*Praatje @ SuperXPG
Voorbeeld: MATLAB
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2)+eps;
Z = sin(R)./R;
surf(X,Y,Z)
![Page 10: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/10.jpg)
10 MD*Praatje @ SuperXPG
Voorbeeld: ESB routering DSL
![Page 11: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/11.jpg)
11 MD*Praatje @ SuperXPG
Voorbeeld: AgreementDSL
![Page 12: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/12.jpg)
12 MD*Praatje @ SuperXPG
Definitie
» Wanneer is een taal een een DSL? Wanneer 'gewoon' een GPL? » COBOL is een GPL. » COBOL is een DSL is voor bedrijfsapplicaties.
» SQL en HTML domeinspecifiekere talen dan Java.
![Page 13: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/13.jpg)
13 MD*Praatje @ SuperXPG
MD*
» Model Driven Architecture® (MDA®) » sinds 2001» Registered Trademark van Object Management Group™ (OMG™)» overtuigende resultaten bleven uit» OMG™ Trademarks
- Model Based Application Development™, Model Based Development™, Model Based Management™, Model Based Programming™, Model Driven Application Development™, Model Driven Development™, Model Driven Programming™, Model Driven Systems™
» Model Driven Engineering (MDE) » enige naam die OMG™ heeft gemist!» gebruikt voor de veelal meer pragmatische niet OMG™ initiatieven
» Model Driven * (MD*) matches all!
![Page 14: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/14.jpg)
14 MD*Praatje @ SuperXPG
Language Workbenches I
» Recente ontwikkelingen zijn language workbenches.
» Faciliteren de ontwikkeling en het gebruik van DSLs» openArchitectureWare » Software Factories (Microsoft)» Intentional Domain Workbench (Intentional Software)
- van ex-Microsoft medewerker, ruimtetoerist en miljardair Charles Simonyi
» Technologisch gezien niets nieuws onder de zon!!» LEX/YACC, FLEX/BISON» ANTLR» Stratego/XT
» Kracht zit in de integratie in de ontwikkelomgevingen (tool support)» Eclipse en MS Visual Studio.
![Page 15: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/15.jpg)
15 MD*Praatje @ SuperXPG
Language Workbenches II
Eclipse
integration
![Page 16: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/16.jpg)
16 MD*Praatje @ SuperXPG
Language Workbenches III
100% vs. best effort
![Page 17: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/17.jpg)
17 MD*Praatje @ SuperXPG
Voordelen
![Page 18: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/18.jpg)
18 MD*Praatje @ SuperXPG
Voordelen: Leesbaarheid I
» Beter leesbaar dan de equivalente oplossing in; - een taal zonder specifiek domein, e.g. Java- eventueel aangevuld met een voor het probleemdomein ontwikkelde
bibliotheek.
» Vanwege de grotere uitdrukkingskracht voor het beperkte toepassingsgebied.
» Neveneffect; mogelijke toename van de kwaliteit en daarmee productiviteit.
![Page 19: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/19.jpg)
19 MD*Praatje @ SuperXPG
Voordelen: Leesbaarheid II
![Page 20: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/20.jpg)
20 MD*Praatje @ SuperXPG
Voordelen: Leesbaarheid III
plus ServiceAgreement en andere classes in bibliotheek
Lees de domein logica tussen de Java syntax door!
![Page 21: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/21.jpg)
21 MD*Praatje @ SuperXPG
Voordelen: Separation of Concerns I
» SoC verbeterd door gestegen abstractieniveau» technische/infrastructurele beslissingen [non-functional] in de generator» domeinlogica [functional] zitten in de DSL
» Hoe non-technischer het domein, hoe zichtbaarder dit voordeel.
» Neveneffect; vergroten technologie- en platformonafhankelijkheid
![Page 22: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/22.jpg)
22 MD*Praatje @ SuperXPG
Voordelen: Separation of Concerns II
Opnieuw generen + draaien!
Non-functional
RFC!
Generator aanpassen..Maikel Koster
![Page 23: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/23.jpg)
23 MD*Praatje @ SuperXPG
Voordelen: Separation of Concerns III
Opnieuw generen + draaien!
Functional
RFC!
Programma aanpassen..
![Page 24: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/24.jpg)
24 MD*Praatje @ SuperXPG
Voordelen: Communicatiemiddel
» Alleen bij een niet-technisch (business) domein
» Domeinexpert code laten reviewen om onregelmatigheden te herkennen
![Page 25: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/25.jpg)
25 MD*Praatje @ SuperXPG
Voordelen: Communicatiemiddel++
» Domeinexpert gebruikt de DSL om zelf business logica uit te drukken.
» Veel ambitieuser;» “[..] bring the current trend of domain orientation to a new level to fully integrate
Domain Experts into software creation.” (Intentional Software)
» In het verleden geen groot succes gebleken, maar we laten ons graag verassen!
![Page 26: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/26.jpg)
26 MD*Praatje @ SuperXPG
Nadelen
![Page 27: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/27.jpg)
27 MD*Praatje @ SuperXPG
Nadelen: Kakofonie van talen
» Wildgroei aan DSLs
» Ontwikkelaar moet veel (kleine) talen leren
» Weerlegging» goed ontworpen DSL is simpel en intuitief in gebruik» goed ontworpen complexe DSL heeft complexere GPL tegenoplossing
» standaardisatie DSLs- pensioen DSL, energiemarkt DSL, etc.
- open source, commerical
![Page 28: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/28.jpg)
28 MD*Praatje @ SuperXPG
Nadelen: Bepalen ROI
» Wanneer geeft ontwerp van DSL + generator voldoende rendement?
» Factoren» mogelijkheid tot hergebruik
- in applicatie, in project, in projecten, in organisatie, in de wereld» geschiktheid van het domein» abstractieniveau» team» organisatie» ?
» Weerlegging» standaarsatie DSLs
![Page 29: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/29.jpg)
29 MD*Praatje @ SuperXPG
Nadelen: DSL/Meta-model evolutie
» Hoe veranderlijk is de DSL tijdens het ontwikkelproces?
» Hoe wordt verandering van de DSL gefaciliteerd? Versioning?
» Weerlegging» standaarsatie DSLs
![Page 30: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/30.jpg)
30 MD*Praatje @ SuperXPG
Conclusies I
» Hernieuwde interesse in model-gedreven ontwikkeling» veelal pragmatischer dan MDA.
» Domeinspecifiekere (visuele) talen voor de definitie van software » meer architectuur en idiomatische kennis in de generatie vatten,» meer van de domein/businesslogica in DSLs.
» Ondersteuning van grote vendors
» Opgepakt door grote IT dienstverleners » MD* ontwikkelstraat Ordina » IDW Pensioen PoC CapGemini» MD-Offshoring,
MD* Community Atos Origin SDMC Architecture & Innovation
![Page 31: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/31.jpg)
31 MD*Praatje @ SuperXPG
Conclusies II
» DSL ontwerp is niet triviaal; » kennis van het domein alswel kennis van taalontwerp » door komst van language workbenches neemt het gewicht op het laatste iets af.
» Meest ambitieuse ontwikkeling op het gebied van software ontwikkling.» welbekende propositie; kwaliteit, productiviteit en platformonafhankelijkheid
» Veel hype, buzz, tractie, etc.
» We gaan het zien!!
![Page 32: Model-gedreven software-ontwikkeling anno nu](https://reader035.vdocuments.site/reader035/viewer/2022062706/55780aced8b42aa5488b5042/html5/thumbnails/32.jpg)
32 MD*Praatje @ SuperXPG
Vragen
» ?