model-gedreven software-ontwikkeling anno nu
TRANSCRIPT
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
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.
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)
4 MD*Praatje @ SuperXPG
Grafisch vs. Textueel
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.
6 MD*Praatje @ SuperXPG
Voorbeelden
7 MD*Praatje @ SuperXPG
Voorbeeld: Bladmuziek
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;
}
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)
10 MD*Praatje @ SuperXPG
Voorbeeld: ESB routering DSL
11 MD*Praatje @ SuperXPG
Voorbeeld: AgreementDSL
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.
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!
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.
15 MD*Praatje @ SuperXPG
Language Workbenches II
Eclipse
integration
16 MD*Praatje @ SuperXPG
Language Workbenches III
100% vs. best effort
17 MD*Praatje @ SuperXPG
Voordelen
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.
19 MD*Praatje @ SuperXPG
Voordelen: Leesbaarheid II
20 MD*Praatje @ SuperXPG
Voordelen: Leesbaarheid III
plus ServiceAgreement en andere classes in bibliotheek
Lees de domein logica tussen de Java syntax door!
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
22 MD*Praatje @ SuperXPG
Voordelen: Separation of Concerns II
Opnieuw generen + draaien!
Non-functional
RFC!
Generator aanpassen..Maikel Koster
23 MD*Praatje @ SuperXPG
Voordelen: Separation of Concerns III
Opnieuw generen + draaien!
Functional
RFC!
Programma aanpassen..
24 MD*Praatje @ SuperXPG
Voordelen: Communicatiemiddel
» Alleen bij een niet-technisch (business) domein
» Domeinexpert code laten reviewen om onregelmatigheden te herkennen
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!
26 MD*Praatje @ SuperXPG
Nadelen
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
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
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
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
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!!
32 MD*Praatje @ SuperXPG
Vragen
» ?