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))
1. Modelgedreven Ontwikkeling
in de Praktijk
Werner Heijstek, Leiden Institute of Adv. Computer Science.
Universiteit Leiden
Universiteit Leiden. Universiteit om te ontdekken.
2. Modelgedreven Ontwikkeling in de Praktijk
Introductie
Werner 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. Modelgedreven Ontwikkeling in de Praktijk
Introductie
Inhoud 2 | 21
Definitie en Terminologie
Tussen Domein en Implementatie
Hoe Zien Modellen Eruit?
Het gebruik van MDD in de Praktijk
Conclusie
Universiteit Leiden. Universiteit om te ontdekken.
4. Modelgedreven Ontwikkeling in de Praktijk
Definitie en Terminologie
Synoniemen 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. Modelgedreven Ontwikkeling in de Praktijk
Definitie en Terminologie
Wat is een model? 4 | 21
Een model is een vereenvoudige weergave van de werkelijkheid:
Figuur: Abstractie van Mont Cervin
Universiteit Leiden. Universiteit om te ontdekken.
6. Modelgedreven Ontwikkeling in de Praktijk
Tussen Domein en Implementatie
Afstand 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. Modelgedreven Ontwikkeling in de Praktijk
Tussen Domein en Implementatie
Modellen 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. Modelgedreven Ontwikkeling in de Praktijk
Tussen Domein en Implementatie
De rol van modellen 7 | 21
Figuur: Brown’s Modelleer Spectrum
Brown (2004) An introduction to MDA. Part I: MDA and Today’s Systems. The Rational Edge
Universiteit Leiden. Universiteit om te ontdekken.
9. Modelgedreven Ontwikkeling in de Praktijk
Tussen Domein en Implementatie
Evolutie 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. Modelgedreven Ontwikkeling in de Praktijk
Hoe 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. 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 mediadistributie
Torchiano, et al. Preliminary findings from a state of the practice survey in MD*. ESEM 2011
Universiteit Leiden. Universiteit om te ontdekken.
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 van
Kwaliteit 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. Modelgedreven Ontwikkeling in de Praktijk
Het gebruik van MDD in de Praktijk
MDD 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. Modelgedreven Ontwikkeling in de Praktijk
Het gebruik van MDD in de Praktijk
MDD en onderhoud 13 | 21
onderhoud
model model
transformeer transformeer
handmatig automatisch
code code
onderhoud
Figuur: Code- versus model-gebaseerd onderhoud
adapted from H. van Vliet (2008) Software Engineering: Principles and Practice Wiley
Universiteit Leiden. Universiteit om te ontdekken.
15. Modelgedreven Ontwikkeling in de Praktijk
Het gebruik van MDD in de Praktijk
MDD 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. Modelgedreven Ontwikkeling in de Praktijk
Het gebruik van MDD in de Praktijk
Gevonden 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 models
adapted from J. Hutchinson et al. Empirical assessment of MDE in industry. ICSE 2011
Universiteit Leiden. Universiteit om te ontdekken.
17. Modelgedreven Ontwikkeling in de Praktijk
Het gebruik van MDD in de Praktijk
Praktijkvoorbeeld urenverdeling 16 | 21
60 construction
50
40
effort (%)
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. Modelgedreven Ontwikkeling in de Praktijk
Het gebruik van MDD in de Praktijk
Potenti¨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. Modelgedreven Ontwikkeling in de Praktijk
Conclusie
Conclusie 18 | 21
Modelgedreven ontwikkeling biedt potentieel grote voordelen
en 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. Modelgedreven Ontwikkeling in de Praktijk
Conclusie
Vragen? 19 | 21
?
Universiteit Leiden. Universiteit om te ontdekken.
21. Modelgedreven Ontwikkeling in de Praktijk
Contact Informatie
Contact 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. Modelgedreven Ontwikkeling in de Praktijk
Meer informatie
Gerelateerde 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.