Model-gedreven software-ontwikkeling anno nu

32
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

Transcript of Model-gedreven software-ontwikkeling anno nu

Page 1: Model-gedreven software-ontwikkeling anno nu

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

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

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

4 MD*Praatje @ SuperXPG

Grafisch vs. Textueel

Page 5: Model-gedreven software-ontwikkeling anno nu

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

6 MD*Praatje @ SuperXPG

Voorbeelden

Page 7: Model-gedreven software-ontwikkeling anno nu

7 MD*Praatje @ SuperXPG

Voorbeeld: Bladmuziek

Page 8: Model-gedreven software-ontwikkeling anno nu

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

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

10 MD*Praatje @ SuperXPG

Voorbeeld: ESB routering DSL

Page 11: Model-gedreven software-ontwikkeling anno nu

11 MD*Praatje @ SuperXPG

Voorbeeld: AgreementDSL

Page 12: Model-gedreven software-ontwikkeling anno nu

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

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

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

15 MD*Praatje @ SuperXPG

Language Workbenches II

Eclipse

integration

Page 16: Model-gedreven software-ontwikkeling anno nu

16 MD*Praatje @ SuperXPG

Language Workbenches III

100% vs. best effort

Page 17: Model-gedreven software-ontwikkeling anno nu

17 MD*Praatje @ SuperXPG

Voordelen

Page 18: Model-gedreven software-ontwikkeling anno nu

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

19 MD*Praatje @ SuperXPG

Voordelen: Leesbaarheid II

Page 20: Model-gedreven software-ontwikkeling anno nu

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

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

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

23 MD*Praatje @ SuperXPG

Voordelen: Separation of Concerns III

Opnieuw generen + draaien!

Functional

RFC!

Programma aanpassen..

Page 24: Model-gedreven software-ontwikkeling anno nu

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

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

26 MD*Praatje @ SuperXPG

Nadelen

Page 27: Model-gedreven software-ontwikkeling anno nu

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

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

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

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

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

32 MD*Praatje @ SuperXPG

Vragen

» ?