Modelgedreven Ontwikkeling in de Praktijk

4,253 views

Published on

Overview of what model-driven development (MDD) is about, what models are, and what implications are of adoption of MDD in industrial practice. (In Dutch, presented Oct 12 at Software~VOC at the ICT~Office (http://www.ictoffice.nl/index.shtml?id=10187&ch=ICT))

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,253
On SlideShare
0
From Embeds
0
Number of Embeds
3,586
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Modelgedreven Ontwikkeling in de Praktijk

  1. 1. Modelgedreven Ontwikkeling in de PraktijkWerner Heijstek, Leiden Institute of Adv. Computer Science. Universiteit Leiden Universiteit Leiden. Universiteit om te ontdekken.
  2. 2. Modelgedreven Ontwikkeling in de PraktijkIntroductieWerner Heijstek 1 | 21 • Sinds 2007 promovendus aan het LIACS obv. Dr. Michel Chaudron (Software Engineering Group) • Sinds 2006 Verbonden aan het ADC van Capgemini Nederland & Capgemini India • Onderzoeksinteresses • global software development • software architectuur en design • software processen en productiviteit • Collaboraties met verschillende (internationale) industri¨le partners en universiteiten e Universiteit Leiden. Universiteit om te ontdekken.
  3. 3. Modelgedreven Ontwikkeling in de PraktijkIntroductieInhoud 2 | 21Definitie en TerminologieTussen Domein en ImplementatieHoe Zien Modellen Eruit?Het gebruik van MDD in de PraktijkConclusie Universiteit Leiden. Universiteit om te ontdekken.
  4. 4. Modelgedreven Ontwikkeling in de PraktijkDefinitie en TerminologieSynoniemen 3 | 21 • Model-Driven Development (MDD) Ontwikkelmethode waarin modellen centraal staan • Model-Driven Software Development (MDSD) • Model-Driven Software Engineering (MDSE) • Model-Driven Engineering (MDE) • Model-Driven Architecture (MDATM ) Specifieke(re) ontwikkelmethode • ontwikkeld door de Object Media Group (OMG) in 2001 • MDD is hiervan een onderdeel • OMG trademarks: Model-Based Application Development (MBADTM ), Model-Based Programming (MBPTM ), . . . Universiteit Leiden. Universiteit om te ontdekken.
  5. 5. Modelgedreven Ontwikkeling in de PraktijkDefinitie en TerminologieWat is een model? 4 | 21Een model is een vereenvoudige weergave van de werkelijkheid: Figuur: Abstractie van Mont Cervin Universiteit Leiden. Universiteit om te ontdekken.
  6. 6. Modelgedreven Ontwikkeling in de PraktijkTussen Domein en ImplementatieAfstand tussen domein en implementatie 5 | 21 ( Klant Business Analyst Requirements Engineer Software Architect Ontwerper ( Programmeur graag zouden wij onze klanten import java.io.*; directer met ons import java.util.* laten interactieren public class Finder { doormiddel van een portal. Figuur: Een ‘normaal’ software ontwikkelprocess Universiteit Leiden. Universiteit om te ontdekken.
  7. 7. Modelgedreven Ontwikkeling in de PraktijkTussen Domein en ImplementatieModellen als centrale taal 6 | 21 Business Analyst Requirements Klant Engineer Software Ontwerper Architect Programmeur Figuur: Een modelgedreven software ontwikkelprocess Universiteit Leiden. Universiteit om te ontdekken.
  8. 8. Modelgedreven Ontwikkeling in de Praktijk Tussen Domein en Implementatie De rol van modellen 7 | 21 Figuur: Brown’s Modelleer SpectrumBrown (2004) An introduction to MDA. Part I: MDA and Today’s Systems. The Rational Edge Universiteit Leiden. Universiteit om te ontdekken.
  9. 9. Modelgedreven Ontwikkeling in de PraktijkTussen Domein en ImplementatieEvolutie van abstractie 8 | 21 periode taal bijzonderheden jaren 50 Assembler jaren 60 Common Business Orien- abstractie van machinecode ted Language (COBOL) jaren 70 C++ object orientatie jaren 90 Java ontkoppeling logische en technische implementatie; veel kant-en-klare functionaliteit recent MDATM , Domeinenspe- abstractie van broncode; “signifi- cifieke Talen (DSL) cante” generatie van broncode Tabel: Evolutie van abstractie in programmeeromgevingen Universiteit Leiden. Universiteit om te ontdekken.
  10. 10. Modelgedreven Ontwikkeling in de PraktijkHoe Zien Modellen Eruit?Modelleertalen 9 | 21 • Generiek • Unified Modeling Language (UML) ◮ grafisch • Formele talen (e.g. Z-notatie) ◮ textueel • Specifiek Domain Specific Languages (DSL) • grafisch (vaak mbv. UML!) • textueel • hybride Universiteit Leiden. Universiteit om te ontdekken.
  11. 11. Modelgedreven Ontwikkeling in de Praktijk Hoe Zien Modellen Eruit? Modelleertalen in de praktijk 10 | 21 50% DSL 40% 30% 20% UML 10% 0% text diagrammen hybride Figuur: DSL “versus” UML Figuur: DSL mediadistributieTorchiano, et al. Preliminary findings from a state of the practice survey in MD*. ESEM 2011 Universiteit Leiden. Universiteit om te ontdekken.
  12. 12. Modelgedreven Ontwikkeling in de Praktijk Het gebruik van MDD in de Praktijk Impact van adoptie van MDD 11 | 21 Modelgedreven ontwikkeling biedt voordelen op het gebied vanKwaliteit Productiviteit Onderhoud• generatie van • codegeneratie • eenvoudiger goede code • afname beheer• nauwere communicatie aansluiting van problemen software op • hergebruik requirements modellen Universiteit Leiden. Universiteit om te ontdekken.
  13. 13. Modelgedreven Ontwikkeling in de PraktijkHet gebruik van MDD in de PraktijkMDD en kwaliteit 12 | 21 • Broncode kan worden gegenereerd • Voordelig voor ‘standaard’ applicaties ↑ standaardwerk =⇒ ↑ gegenereerde code • code hoeft niet het doel te zijn • “Volwassen” modellen door hergebruik • dus ook: hergebruik van modellen van hoge kwaliteit • Betere aansluiting op requirements door domeinkoppeling Universiteit Leiden. Universiteit om te ontdekken.
  14. 14. Modelgedreven Ontwikkeling in de PraktijkHet gebruik van MDD in de PraktijkMDD en onderhoud 13 | 21 onderhoud model model transformeer transformeer handmatig automatisch code code onderhoud Figuur: Code- versus model-gebaseerd onderhoudadapted from H. van Vliet (2008) Software Engineering: Principles and Practice Wiley Universiteit Leiden. Universiteit om te ontdekken.
  15. 15. Modelgedreven Ontwikkeling in de PraktijkHet gebruik van MDD in de PraktijkMDD en productiviteit 14 | 21 • MDD maakt ontwikkelprocessen productiever doordat • veel code kan worden gegenereerd • modellen vergemakkelijken communicatie • hergebruik maakt ‘shortcuts’ mogelijk • Weinig literatuur mbt. de bottom line • van 27 procent minder productief tot 400 procent productiever ◮ leereffecten (zeker bij z´lf modellen en generatoren bouwen) e ◮ is MDD juist toegepast? • “Too good to be true effect” maakt proponenten terughoudend in rapportages (Hutchinson 2011) Universiteit Leiden. Universiteit om te ontdekken.
  16. 16. Modelgedreven Ontwikkeling in de PraktijkHet gebruik van MDD in de PraktijkGevonden voordelen in de praktijk 15 | 21 Productivity Maintainability Activity Not Not Increased Increased Used Used Use of models for team 73 % 7 % 66 % 6 % communication Use of models for understanding a 73 % 4 % 72 % 6 % problem at an abstract level Use of models to capture and document 65 % 9 % 59 % 10 % designs Use of domain-specific 47 % 32 % 44 % 33 % languages (DSLs) Code generation 67 % 12 % 56 % 12 % Model simulation/ 41 % 38 % 39 % 35 % Executable modelsadapted from J. Hutchinson et al. Empirical assessment of MDE in industry. ICSE 2011 Universiteit Leiden. Universiteit om te ontdekken.
  17. 17. Modelgedreven Ontwikkeling in de Praktijk Het gebruik van MDD in de Praktijk Praktijkvoorbeeld urenverdeling 16 | 21 60 construction 50 40effort (%) constr 30 elaboration transition 20 tran elaboration 10 incep. 0 0 20 40 60 80 100 time (%) unpublished: Heijstek & Chaudron Universiteit Leiden. Universiteit om te ontdekken.
  18. 18. Modelgedreven Ontwikkeling in de PraktijkHet gebruik van MDD in de PraktijkPotenti¨le valkuilen e 17 | 21 • Design fase duurt langer (“WINCY probleem”) • Risico op scope creep bij hergebruik modellen • Late wijzigingen buiten scope hebben een potentieel hogere impact • Maintainers meer betrekken bij ontwikkeling • Ontwerpers moeten zeer gedetailleerd modeleren • De handgeschreven code vereist ervaren programmeurs • “Collective Model Owernership” • MDD is tool-afhankelijk • Ontwikkeling is sterk tool-gebaseerd • Sterke link tussen leverancier en implementatie (“lock-in”)uit: Heijstek & Chaudron The Impact of MDD on the Software Architecture Process SEAA 2010 Universiteit Leiden. Universiteit om te ontdekken.
  19. 19. Modelgedreven Ontwikkeling in de PraktijkConclusieConclusie 18 | 21Modelgedreven ontwikkeling biedt potentieel grote voordelenen is een logische volgende stap in software ontwikkeling • DSL biedt een specifieke taal voor uw domein • Bij zelfbouw is een investering nodig • in kennis en tools • meer aandacht moet worden besteed aan de “early phases” • requirements moeten weer iets duidelijker voor implementatie • Bij gebruik externe oplossing • zorg voor wijdverspreid begrip van DSL • verzeker je van een omgeving die flexibel genoeg is Universiteit Leiden. Universiteit om te ontdekken.
  20. 20. Modelgedreven Ontwikkeling in de PraktijkConclusieVragen? 19 | 21 ? Universiteit Leiden. Universiteit om te ontdekken.
  21. 21. Modelgedreven Ontwikkeling in de PraktijkContact InformatieContact Informatie 20 | 21 Werner Heijstek heijstek@liacs.nl http://www.liacs.nl/˜heijstek Snellius building room 150 +31 (0) 71 – 527 7050 Ekiga: sip:w.heijstek@ekiga.net Skype: wernerheijstek Universiteit Leiden. Universiteit om te ontdekken.
  22. 22. Modelgedreven Ontwikkeling in de PraktijkMeer informatieGerelateerde literatuur 21 | 21 • B. Hailpern & P. Tarr (2006) Model-driven development: The good, the bad, and the ugly IBM Systems Journal • J. Hutchinson, M. Rouncefield, J. Whittle Model-Driven Engineering Practices in Industry ICSE 2011 • W. Heijstek & M.R.V. Chaudron The Impact of MDD on the Software Architecture Process Euromicro SEAA 2010 • International Conference on Model Driven Engineering Languages and Systems (MODELS) • Heeft een omvangrijke “industrial-track” • Proceedings van afgelopen jaren zijn online terug te vinden • 2011: 16 – 21 oktober, Wellington • 2012: 1 – 5 oktober, Innsbruck Universiteit Leiden. Universiteit om te ontdekken.

×