SlideShare a Scribd company logo
1 of 123
The Truth about Model-Driven Development
                in Industry
   – and Why Researchers Should Care
                      Jon Whittle
    joint work with John Hutchinson, Mark Rouncefield


            School of Computing & Communications
                    Lancaster University, UK
                  j.n.whittle@lancaster.ac.uk
2001 AD
I'm sorry, Dave. I'm afraid I can't do that.
model-driven architecture
 aka.
 model-driven development
 model-driven engineering
 model-based software development
 model-based design
 model-integrated computing
 domain-specific modeling
productivity
maintainability
portability
interoperability
all is well with the world
except for…

those darned naysayers
2012 AD
who was right?
talk outline
• Project EAMDE
 – Social/organizational/technical
  factors
• Discoveries
  – Some observations
  – Some lessons
  – Some tips
Project EAMDE

• Widely-distributed questionnaire on how MDD is
  used
  – 35 questions pertaining to MDD application
  – 449 responses
• In-depth interviews with MDD practitioners
  – 22 interviews; 17 different companies
  – 150,000 words of transcribed data
  – >360 years of cumulative experience
• On-site ethnographic studies (ongoing)
  – 2 done (by Steinar Kristoffersen); more planned
What EAMDE is not


• an attempt to quantify the penetration of MDD in
  industry
• a study on UML
  – deliberately broad view of MD*
• an attempt to evangelise or promote MDD
  – interested in failure as much as success
Diversity
Examples of MDD
Examples of MDD


“the broader the domain you try and cover, the
less the productivity increase… with
DSM, you’re not looking at building a modeling
language for embedded applications … you’re
not looking at building one for mobile
applications… mobile embedded, or even
mobile phones or even Brand X mobile
phones, but a particular product family of Brand
X mobile phones…”
First discovery:
a lot of MDD success
is hidden
Which modeling languages do you use?
                    (tick all that apply)




   UML   BPMN   Vendor   In-house   SysML   Matlab/
                DSL      DSL                Simulink
DSLs favored over general-
purpose modeling


  •   mostly, companies write their own code
      generators for very specific tasks
      –   In contrast, companies often ditch commercial tools
          because they cannot modify them the way they want
          or because they “don‟t do everything”
      –   Multiple references to the fact that off-the-shelf tools
          could have killed an MDD effort
  •   Generation of whole systems is not widespread
Second discovery:
code generation is a red herring
Code generation


“I guess at the end of the day, this dream of code
generation from models doesn’t exist – I mean
everything ends up being done by hand because
either we don’t trust code generators or they just
don’t generate the code we need… it’s actually
impossible to get in non-functional requirements
into code generators – it’s too difficult”
Offsetting gains without
realising it

• “sometimes the code generated makes it
  necessary to use a larger CPU which costs more
  money than the efficient code of an experienced
  programmer”

• 8x more expensive to certify generated code
Don‟t obsess about productivity


  • 65-100% code
    generated
  • Figures on
    productivity gains
    differ
    – 20-800% gain
    – 27% loss
Third discovery:
the real benefits of
MDD are holistic
So if not productivity, then what?


 • The real benefits of MDD are
   quality, architecture, reuse
 • “whenever you name any single
   advantage…you can always achieve the same
   advantage with another approach…”
   – “it tends to be that a model-driven approach is more
     likely to have a well articulated design and
     architecture”
Example


• An organisation finds itself developing lots of
  little (modeling) languages over time:
   – “we were generating 70% of the system off these little
     XML languages… we would try to separate out the
     pieces that were generateable and the pieces that
     weren’t… it motivated us to have better separation of
     concerns”
Fourth discovery:
MDD must enable new things, not just
speed up old things
Doing things faster and better
    is not enough

•    If the status quo works (or is perceived to
     work), there will be insufficient buy-in to change
    –   MDD should be sold not based on how it can do
        things (slightly) better, but in terms of how it can fix
        things that are broken
    –   “software is no longer a bottleneck”
People/Organizations
The Psychology of MDD
Architects love MDD
The code guru hates it
as does the hobbyist developer
It‟s bad news for offshoring
Middle-managers
 are usually the
   bottleneck
The MDD guru is likely
to be a developer and
domain expert
MDD works best in companies
    that are not in the
    software business
Current Business Practice
Doesn‟t Support MDD
Business Practice Doesn‟t
Support MDD

• “lead architects need to understand that just
  because their models are simple, they weren’t
  going to be put out of a job…”
• Developers are defined by their expertise for a
  technology not a domain; so it is not in their
  interests to innovate
MDD Works Best in Non-
Software Companies

•   domain experts already model
    –   “they already have an established way to design in
        Powerpoint”
    –   “I think they are more open than a company that has very
        long years of experience in software development”
The Good, The Bad, and The Ugly
The Good
•   mature domain
•   non-software context
•   ground-up effort
•   real business driver
“we put it directly in the line of the
product”


                  “we are not allowed to fail”
“the benefit was not only because we
introduced model-driven design”


   “we also started a re-use group”


“if you didn’t introduce model-driven
design, the reuse initiative would have
failed”
“at this moment, embedded software is
not bottleneck in any project”
“56% of all our code is from re-used
   building blocks, but in the beginning it was
   only 5 or 10%”



“normally, decisions are made as low in
the organisation as possible
The Good


   •   critical path
   •   non-software context
   •   real business driver
   •   MDD an enabler for reuse
The Bad -Ass
“the same electrical design in a full size
truck as in a Cadillac”
“somebody would be writing the spec”


        “they were actually outsourcing”
“there was an order of magnitude
difference in terms of number of people
involved from generation to generation”
“you couldn’t find a computer scientist if
you went on a search party”
“vendors try to push out-of-the-box code
generation”


 “very, very challenging to do… so we wrote
 our own code generator”
“if we did modeling just for code generation”


     “you’ll likely not get the right abstraction”
The Bad -Ass


   •   mature domain
   •   non-software context
   •   ground-up effort
   •   real business driver
The Ugly
“it was a totally new concept of switching system”
“he made this huge decision ”


    “50 developers all using this CASE tool”
“if there is a problem, they just contact the
[CASE tool] engineers.. That was kind of
their strategy”
“and suddenly the tool doesn’t do something
expected”




  “they try to contact the vendor but they don’t
  really know what’s going on”
“they couldn’t optimize the generated code”


  “so the way they had to do it was asking the
  hardware guys to have more hard disc, more
  memory, because of the tool”
“it was a nightmare to them to add all the
features”
The Ugly


   •   immature domain
   •   top-down effort
   •   no real business driver
   •   lack of control
What would 449 MDD
practitioners say?
Disclaimers
Snowball sampling
Not everyone answered every question
We encouraged only those with actual MDE experience
to participate…
…and discouraged those with opinion but no experience
Aims of the Survey
Real use of MDE in practice
Unraveling points of contention related to MDE
Technical factors
• Code will write itself!
• BUT needs to be
  integrated with legacy
  systems
People factors
• Easier to train new hires
• BUT new hires require
  more training
Organisational factors
• Encourages organisation-
  wide standards
• BUT requires heavy-
  handed, rigorous
  management
Key findings
The “Community” of Respondents
Do you consider MDE to be a good thing?




                            84%
• Significant software engineering experience
  – Over 1000 years total experience
  – 70% involved in software development for 5 years or
    more
• Employed in a range of different roles
  –   Developer 17%
  –   Modeler 21%
  –   Team leader 19%
  –   Project manager 16%
  –   Domain expert 4%
  –   Researcher 23%
  –   Architect 7%
• Good spread of size of company
  – Roughly a third each had:
     • 1-100 employees
     • 100-1000
     • >1000
• A significant number of employees are not
  engaged in software development
Experience with MDE


•   Initial exploration: 10%
•   Prototyping: 10%
•   First major project: 18%
•   ~ 1/3: extensive experience of MDE on many
    projects and/or over many years
What are models used for?




“Do not use” percentages for MDE activities
Which modeling languages do you use?




   UML   BPMN   Vendor   In-house   SysML   Matlab/
                DSL      DSL                Simulink
Use of multiple languages


• 62% of those using custom DSLs also use UML
• Almost all users of SysML and BPMN also use
  UML
• UML is the most popular „single use‟ language
  – 38% of all respondents
• UML used in combination with just about every
  combination of modeling languages
  – 14% of UML users combine with vendor DSL
  – 6% with both custom and vendor DSL
Which diagrams are used?




  19 different diagram types are used regularly
Points of contention – paired questions
Effect of MDE on Training Costs


 Q: Does using MDE allow you to employ
 developers with less software engineering
 experience?
        46% agree, 34% disagree

 Q: Does using MDE require you to carry out
 significant extra training in modeling?
        74% agree, 9% disagree
Benefits of code generation


 Q: Is your use of code generation an important
 aspect of your MDE productivity gains?

        75% agree, 10% disagree

 Q: Is integrating generated code into your existing
 projects a significant problem?


        36% agree, 40% disagree
Changes on model or code?


 Q: Do you mainly make updates on the model
 rather than the code?

        70% agree, 15% disagree

 Q: Do you spend a lot of time synchronizing the
 model and the code?


        35% agree, 45% disagree
MDE and Agility


 Q: Does MDE make you faster at implementing
 new requirements?

       75% agree, 12% disagree

 Q: Does MDE prevent you from responding to
 business opportunities?

       32% agree, 38% disagree
Complexity of UML


 Q: Is UML too complex?

       44% agree, 32% disagree

 Q: Is UML powerful enough?


       52% agree, 31% disagree
Promoting understanding


 Q: Does your use of MDE lead to better
 understanding between stakeholders?
        66% agree, 16% disagree

 Q: Does your use of MDE result in unexpected
 confusion and/or misunderstandings between
 stakeholders?
        25% agree, 49% disagree
Tooling


 Q: Are MDE tools too expensive?

          45% agree

 Q: Do organizations attempt to deploy MDE using
 inappropriate and/or cheap tools?
          55% agree
Tools used

  ATL,      Acceleo,     Agile4R,       AndroMDA,         ANTLR,       Apple
XCode, ArgoUML, Artisan Studio, ASCET, ASF+SDF, AToM3, Blu
Age, Borland Together, BridgePoint, Eclipse (EMF, GMF, M2T), Enterprise
Architect, Rhapsody, Rational Technical Developer, Rational
Rose,      IdealXML,        Influx,     Intalio,     Intelligent    Software    Over 100 tools
Factory,     iUML,      Kermeta,       Lisp,     LTS,      M2Flex,     Magic
Draw, Matlab/Simulink, Maven, Mendix, MetaEdit+, MetaSketch, MiaGen
eration,      Microsoft        DSL        Tools,       Microsoft       Visual
Studio, Visio, Omnigraffle, MicroTool Objectif, MID Innovator
Object,     ModelBus,        ModelPro,       MOFScript,        NexJ     MDE
Framework,               Obeo,               Objecteering,             Oliva
Nova, OpenArchitectureWare, OpenEmbeDD, OptimalJ, Oracle
Case,       OWLtoAspectJ,           Papyrus,       Popkin        SA      and
BPWIN, Poseidon, PowerDesigner, ProtĂŠgĂŠ, QVT-Operational (Eclipse
Implementation),             Rascal,             Rational           Software
Architect, Scheme, SketchiXML, starUML, Stratego, TAYLOR, Telelogic
Tau, Tibco Business Studio, Together Architect, Topcased, T-
VEC,           Umbrello,          UModel,            URDAD,            Visual
Paradigm,      VisualState,     WEBRATIO,         WebSphere       Integration
Developer, IBM XDE
Key findings


• Productivity gains from code generation tend to
  outweigh losses from integration with existing
  code
• MDE allows for faster turn-around on new
  requirements
  – But there is a significant risk that it may prevent
    organizations from responding to new business
    opportunities
Key findings


• MDE increases overall training costs
• UML is not yet universally accepted as the
  modeling language of choice
  – Indeed, DSLs are far more prevalent than anticipated
Education, education, education
• Are we teaching modeling the
  wrong way?
  – bottom-up versus top-down
  – combine teaching modeling
    & compilers/code
    optimizationoptimization
Top 10 Tips for Practitioners
1
Keep Domains Tight and Narrow
2
Target well-documented, well-
    understood domains
3
Put MDD on the Critical Path
4
MDD works best when driven
   from the ground-up
5
Be Careful About Gains
   Offset Elsewhere
6
Don‟t Obsess About Code Generation
7
Not everyone can think abstractly
8
Most projects fail at scale-up
9
Match tools/processes to the
 way people think; not the
     other way around
10
OK, there were only 9…
Bedtime reading…

• Model Driven Engineering Practices in
  Industry, ICSE 2011
• Empirical Assessment of MDE in
  Industry, ICSE 2011
• Mismatches between Industry Practice and
  Teaching of Model-Driven Software
  Development. MODELS 2011 Educators‟
  Symp.
• A Survey of Practitioners’ Use of MDE (ask
  me for a copy)
Why should researchers care?
Match tools/processes to the
 way people think; not the
     other way around
Dataset

http://www.comp.lancs.ac.uk/~eamde/site/content_qres.php




  These Slides

http://www.slideshare.net/jonathw/whittle-modeling-wizards-2012

More Related Content

What's hot

How good is your software development team ?
How good is your software development team ?How good is your software development team ?
How good is your software development team ?
Kinshuk Adhikary
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
Kenan Sevindik
 
Prototyping for tiny fingers
Prototyping for tiny fingersPrototyping for tiny fingers
Prototyping for tiny fingers
Julio Pari
 
Rettig onprototyping
Rettig onprototypingRettig onprototyping
Rettig onprototyping
Julio Pari
 

What's hot (20)

Agile design pattern
Agile design patternAgile design pattern
Agile design pattern
 
How good is your software development team ?
How good is your software development team ?How good is your software development team ?
How good is your software development team ?
 
APIA2018 - Zahra Tashakorinia - Design Hacks & Paper Prototyping
APIA2018 - Zahra Tashakorinia - Design Hacks & Paper PrototypingAPIA2018 - Zahra Tashakorinia - Design Hacks & Paper Prototyping
APIA2018 - Zahra Tashakorinia - Design Hacks & Paper Prototyping
 
The alignment
The alignmentThe alignment
The alignment
 
How to become a great developer
How to become a great developerHow to become a great developer
How to become a great developer
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
 
50.000 orange stickies later
50.000 orange stickies later50.000 orange stickies later
50.000 orange stickies later
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process
 
MHIT 603: Introduction to Prototyping
MHIT 603: Introduction to PrototypingMHIT 603: Introduction to Prototyping
MHIT 603: Introduction to Prototyping
 
SAD07 - Project Management
SAD07 - Project ManagementSAD07 - Project Management
SAD07 - Project Management
 
Class (1)
Class (1)Class (1)
Class (1)
 
Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014
 
The gordian knot
The gordian knotThe gordian knot
The gordian knot
 
Why projects fail
Why projects failWhy projects fail
Why projects fail
 
Do No Harm: Do Technologists Need a Code of Ethics?
Do No Harm: Do Technologists Need a Code of Ethics?Do No Harm: Do Technologists Need a Code of Ethics?
Do No Harm: Do Technologists Need a Code of Ethics?
 
IT Executive's guide to Design Thinking
IT Executive's guide to Design ThinkingIT Executive's guide to Design Thinking
IT Executive's guide to Design Thinking
 
Prototyping for tiny fingers
Prototyping for tiny fingersPrototyping for tiny fingers
Prototyping for tiny fingers
 
NYU Stern: How to Start Your Digital Idea
NYU Stern: How to Start Your Digital IdeaNYU Stern: How to Start Your Digital Idea
NYU Stern: How to Start Your Digital Idea
 
Rettig onprototyping
Rettig onprototypingRettig onprototyping
Rettig onprototyping
 
Agile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we TodayAgile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we Today
 

Viewers also liked

Final with audio
Final with audioFinal with audio
Final with audio
brikah
 
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
Nozomu Kaneko
 
Pylons ユーザのための Pyramid 移行ガイド
Pylons ユーザのための Pyramid 移行ガイドPylons ユーザのための Pyramid 移行ガイド
Pylons ユーザのための Pyramid 移行ガイド
Nozomu Kaneko
 
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
Nozomu Kaneko
 

Viewers also liked (10)

55
5555
55
 
148
148148
148
 
Allianz Your Cover - The Secret Lives of Cars
Allianz Your Cover - The Secret Lives of CarsAllianz Your Cover - The Secret Lives of Cars
Allianz Your Cover - The Secret Lives of Cars
 
Nicholas pitt g46206111_merit_pay_final
Nicholas pitt g46206111_merit_pay_finalNicholas pitt g46206111_merit_pay_final
Nicholas pitt g46206111_merit_pay_final
 
Final with audio
Final with audioFinal with audio
Final with audio
 
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(後編)
 
Pylons ユーザのための Pyramid 移行ガイド
Pylons ユーザのための Pyramid 移行ガイドPylons ユーザのための Pyramid 移行ガイド
Pylons ユーザのための Pyramid 移行ガイド
 
Python を使ってカメリオを高速化した話
Python を使ってカメリオを高速化した話Python を使ってカメリオを高速化した話
Python を使ってカメリオを高速化した話
 
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
 
Merit Pay Presentation - Nicholas Pitt - EDUC 6232
Merit Pay Presentation - Nicholas Pitt - EDUC 6232Merit Pay Presentation - Nicholas Pitt - EDUC 6232
Merit Pay Presentation - Nicholas Pitt - EDUC 6232
 

Similar to Whittle Modeling Wizards 2012

JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseJavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
FestGroup
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
Uwe Friedrichsen
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
Henry Jacob
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4
Marvin Heery
 
Software Project management
Software Project managementSoftware Project management
Software Project management
sameer farooq
 

Similar to Whittle Modeling Wizards 2012 (20)

The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developer
 
I Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer UsefulI Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer Useful
 
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseJavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Using Product Box to Build the Complete Developer
Using Product Box to Build the Complete DeveloperUsing Product Box to Build the Complete Developer
Using Product Box to Build the Complete Developer
 
Introduction
IntroductionIntroduction
Introduction
 
How to hire frontend engineers
How to hire frontend engineersHow to hire frontend engineers
How to hire frontend engineers
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
 
Europython how to make it recruiting suck less?
Europython   how to make it recruiting suck less?Europython   how to make it recruiting suck less?
Europython how to make it recruiting suck less?
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Why do most machine learning projects never make it to production
Why do most machine learning projects never make it to productionWhy do most machine learning projects never make it to production
Why do most machine learning projects never make it to production
 
Engage 2020 - Domino Application Strategy: Key insights for successful modern...
Engage 2020 - Domino Application Strategy: Key insights for successful modern...Engage 2020 - Domino Application Strategy: Key insights for successful modern...
Engage 2020 - Domino Application Strategy: Key insights for successful modern...
 
Software development process for outsourcing team
Software development process for outsourcing teamSoftware development process for outsourcing team
Software development process for outsourcing team
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 

Recently uploaded

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Whittle Modeling Wizards 2012

  • 1. The Truth about Model-Driven Development in Industry – and Why Researchers Should Care Jon Whittle joint work with John Hutchinson, Mark Rouncefield School of Computing & Communications Lancaster University, UK j.n.whittle@lancaster.ac.uk
  • 3.
  • 4. I'm sorry, Dave. I'm afraid I can't do that.
  • 5.
  • 6. model-driven architecture aka. model-driven development model-driven engineering model-based software development model-based design model-integrated computing domain-specific modeling
  • 11. all is well with the world
  • 13.
  • 16. talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries – Some observations – Some lessons – Some tips
  • 17. Project EAMDE • Widely-distributed questionnaire on how MDD is used – 35 questions pertaining to MDD application – 449 responses • In-depth interviews with MDD practitioners – 22 interviews; 17 different companies – 150,000 words of transcribed data – >360 years of cumulative experience • On-site ethnographic studies (ongoing) – 2 done (by Steinar Kristoffersen); more planned
  • 18. What EAMDE is not • an attempt to quantify the penetration of MDD in industry • a study on UML – deliberately broad view of MD* • an attempt to evangelise or promote MDD – interested in failure as much as success
  • 21. Examples of MDD “the broader the domain you try and cover, the less the productivity increase… with DSM, you’re not looking at building a modeling language for embedded applications … you’re not looking at building one for mobile applications… mobile embedded, or even mobile phones or even Brand X mobile phones, but a particular product family of Brand X mobile phones…”
  • 22. First discovery: a lot of MDD success is hidden
  • 23. Which modeling languages do you use? (tick all that apply) UML BPMN Vendor In-house SysML Matlab/ DSL DSL Simulink
  • 24. DSLs favored over general- purpose modeling • mostly, companies write their own code generators for very specific tasks – In contrast, companies often ditch commercial tools because they cannot modify them the way they want or because they “don‟t do everything” – Multiple references to the fact that off-the-shelf tools could have killed an MDD effort • Generation of whole systems is not widespread
  • 26. Code generation “I guess at the end of the day, this dream of code generation from models doesn’t exist – I mean everything ends up being done by hand because either we don’t trust code generators or they just don’t generate the code we need… it’s actually impossible to get in non-functional requirements into code generators – it’s too difficult”
  • 27. Offsetting gains without realising it • “sometimes the code generated makes it necessary to use a larger CPU which costs more money than the efficient code of an experienced programmer” • 8x more expensive to certify generated code
  • 28. Don‟t obsess about productivity • 65-100% code generated • Figures on productivity gains differ – 20-800% gain – 27% loss
  • 29. Third discovery: the real benefits of MDD are holistic
  • 30. So if not productivity, then what? • The real benefits of MDD are quality, architecture, reuse • “whenever you name any single advantage…you can always achieve the same advantage with another approach…” – “it tends to be that a model-driven approach is more likely to have a well articulated design and architecture”
  • 31. Example • An organisation finds itself developing lots of little (modeling) languages over time: – “we were generating 70% of the system off these little XML languages… we would try to separate out the pieces that were generateable and the pieces that weren’t… it motivated us to have better separation of concerns”
  • 32. Fourth discovery: MDD must enable new things, not just speed up old things
  • 33. Doing things faster and better is not enough • If the status quo works (or is perceived to work), there will be insufficient buy-in to change – MDD should be sold not based on how it can do things (slightly) better, but in terms of how it can fix things that are broken – “software is no longer a bottleneck”
  • 37. The code guru hates it
  • 38. as does the hobbyist developer
  • 39. It‟s bad news for offshoring
  • 40. Middle-managers are usually the bottleneck
  • 41. The MDD guru is likely to be a developer and domain expert
  • 42. MDD works best in companies that are not in the software business
  • 44. Business Practice Doesn‟t Support MDD • “lead architects need to understand that just because their models are simple, they weren’t going to be put out of a job…” • Developers are defined by their expertise for a technology not a domain; so it is not in their interests to innovate
  • 45. MDD Works Best in Non- Software Companies • domain experts already model – “they already have an established way to design in Powerpoint” – “I think they are more open than a company that has very long years of experience in software development”
  • 46. The Good, The Bad, and The Ugly
  • 48. • mature domain • non-software context • ground-up effort • real business driver
  • 49. “we put it directly in the line of the product” “we are not allowed to fail”
  • 50. “the benefit was not only because we introduced model-driven design” “we also started a re-use group” “if you didn’t introduce model-driven design, the reuse initiative would have failed”
  • 51. “at this moment, embedded software is not bottleneck in any project”
  • 52. “56% of all our code is from re-used building blocks, but in the beginning it was only 5 or 10%” “normally, decisions are made as low in the organisation as possible
  • 53. The Good • critical path • non-software context • real business driver • MDD an enabler for reuse
  • 55.
  • 56. “the same electrical design in a full size truck as in a Cadillac”
  • 57. “somebody would be writing the spec” “they were actually outsourcing”
  • 58. “there was an order of magnitude difference in terms of number of people involved from generation to generation”
  • 59. “you couldn’t find a computer scientist if you went on a search party”
  • 60. “vendors try to push out-of-the-box code generation” “very, very challenging to do… so we wrote our own code generator”
  • 61. “if we did modeling just for code generation” “you’ll likely not get the right abstraction”
  • 62. The Bad -Ass • mature domain • non-software context • ground-up effort • real business driver
  • 64.
  • 65. “it was a totally new concept of switching system”
  • 66. “he made this huge decision ” “50 developers all using this CASE tool”
  • 67. “if there is a problem, they just contact the [CASE tool] engineers.. That was kind of their strategy”
  • 68. “and suddenly the tool doesn’t do something expected” “they try to contact the vendor but they don’t really know what’s going on”
  • 69. “they couldn’t optimize the generated code” “so the way they had to do it was asking the hardware guys to have more hard disc, more memory, because of the tool”
  • 70. “it was a nightmare to them to add all the features”
  • 71. The Ugly • immature domain • top-down effort • no real business driver • lack of control
  • 72. What would 449 MDD practitioners say?
  • 75. Not everyone answered every question
  • 76. We encouraged only those with actual MDE experience to participate…
  • 77. …and discouraged those with opinion but no experience
  • 78. Aims of the Survey
  • 79. Real use of MDE in practice
  • 80. Unraveling points of contention related to MDE
  • 81. Technical factors • Code will write itself! • BUT needs to be integrated with legacy systems
  • 82. People factors • Easier to train new hires • BUT new hires require more training
  • 83. Organisational factors • Encourages organisation- wide standards • BUT requires heavy- handed, rigorous management
  • 86. Do you consider MDE to be a good thing? 84%
  • 87. • Significant software engineering experience – Over 1000 years total experience – 70% involved in software development for 5 years or more
  • 88. • Employed in a range of different roles – Developer 17% – Modeler 21% – Team leader 19% – Project manager 16% – Domain expert 4% – Researcher 23% – Architect 7%
  • 89. • Good spread of size of company – Roughly a third each had: • 1-100 employees • 100-1000 • >1000 • A significant number of employees are not engaged in software development
  • 90. Experience with MDE • Initial exploration: 10% • Prototyping: 10% • First major project: 18% • ~ 1/3: extensive experience of MDE on many projects and/or over many years
  • 91. What are models used for? “Do not use” percentages for MDE activities
  • 92. Which modeling languages do you use? UML BPMN Vendor In-house SysML Matlab/ DSL DSL Simulink
  • 93. Use of multiple languages • 62% of those using custom DSLs also use UML • Almost all users of SysML and BPMN also use UML • UML is the most popular „single use‟ language – 38% of all respondents • UML used in combination with just about every combination of modeling languages – 14% of UML users combine with vendor DSL – 6% with both custom and vendor DSL
  • 94. Which diagrams are used? 19 different diagram types are used regularly
  • 95. Points of contention – paired questions
  • 96. Effect of MDE on Training Costs Q: Does using MDE allow you to employ developers with less software engineering experience? 46% agree, 34% disagree Q: Does using MDE require you to carry out significant extra training in modeling? 74% agree, 9% disagree
  • 97. Benefits of code generation Q: Is your use of code generation an important aspect of your MDE productivity gains? 75% agree, 10% disagree Q: Is integrating generated code into your existing projects a significant problem? 36% agree, 40% disagree
  • 98. Changes on model or code? Q: Do you mainly make updates on the model rather than the code? 70% agree, 15% disagree Q: Do you spend a lot of time synchronizing the model and the code? 35% agree, 45% disagree
  • 99. MDE and Agility Q: Does MDE make you faster at implementing new requirements? 75% agree, 12% disagree Q: Does MDE prevent you from responding to business opportunities? 32% agree, 38% disagree
  • 100. Complexity of UML Q: Is UML too complex? 44% agree, 32% disagree Q: Is UML powerful enough? 52% agree, 31% disagree
  • 101. Promoting understanding Q: Does your use of MDE lead to better understanding between stakeholders? 66% agree, 16% disagree Q: Does your use of MDE result in unexpected confusion and/or misunderstandings between stakeholders? 25% agree, 49% disagree
  • 102. Tooling Q: Are MDE tools too expensive? 45% agree Q: Do organizations attempt to deploy MDE using inappropriate and/or cheap tools? 55% agree
  • 103. Tools used ATL, Acceleo, Agile4R, AndroMDA, ANTLR, Apple XCode, ArgoUML, Artisan Studio, ASCET, ASF+SDF, AToM3, Blu Age, Borland Together, BridgePoint, Eclipse (EMF, GMF, M2T), Enterprise Architect, Rhapsody, Rational Technical Developer, Rational Rose, IdealXML, Influx, Intalio, Intelligent Software Over 100 tools Factory, iUML, Kermeta, Lisp, LTS, M2Flex, Magic Draw, Matlab/Simulink, Maven, Mendix, MetaEdit+, MetaSketch, MiaGen eration, Microsoft DSL Tools, Microsoft Visual Studio, Visio, Omnigraffle, MicroTool Objectif, MID Innovator Object, ModelBus, ModelPro, MOFScript, NexJ MDE Framework, Obeo, Objecteering, Oliva Nova, OpenArchitectureWare, OpenEmbeDD, OptimalJ, Oracle Case, OWLtoAspectJ, Papyrus, Popkin SA and BPWIN, Poseidon, PowerDesigner, ProtĂŠgĂŠ, QVT-Operational (Eclipse Implementation), Rascal, Rational Software Architect, Scheme, SketchiXML, starUML, Stratego, TAYLOR, Telelogic Tau, Tibco Business Studio, Together Architect, Topcased, T- VEC, Umbrello, UModel, URDAD, Visual Paradigm, VisualState, WEBRATIO, WebSphere Integration Developer, IBM XDE
  • 104. Key findings • Productivity gains from code generation tend to outweigh losses from integration with existing code • MDE allows for faster turn-around on new requirements – But there is a significant risk that it may prevent organizations from responding to new business opportunities
  • 105. Key findings • MDE increases overall training costs • UML is not yet universally accepted as the modeling language of choice – Indeed, DSLs are far more prevalent than anticipated
  • 107. • Are we teaching modeling the wrong way? – bottom-up versus top-down – combine teaching modeling & compilers/code optimizationoptimization
  • 108. Top 10 Tips for Practitioners
  • 109. 1 Keep Domains Tight and Narrow
  • 110. 2 Target well-documented, well- understood domains
  • 111. 3 Put MDD on the Critical Path
  • 112. 4 MDD works best when driven from the ground-up
  • 113. 5 Be Careful About Gains Offset Elsewhere
  • 114. 6 Don‟t Obsess About Code Generation
  • 115. 7 Not everyone can think abstractly
  • 116. 8 Most projects fail at scale-up
  • 117. 9 Match tools/processes to the way people think; not the other way around
  • 118. 10 OK, there were only 9…
  • 119. Bedtime reading… • Model Driven Engineering Practices in Industry, ICSE 2011 • Empirical Assessment of MDE in Industry, ICSE 2011 • Mismatches between Industry Practice and Teaching of Model-Driven Software Development. MODELS 2011 Educators‟ Symp. • A Survey of Practitioners’ Use of MDE (ask me for a copy)
  • 120.
  • 122. Match tools/processes to the way people think; not the other way around
  • 123. Dataset http://www.comp.lancs.ac.uk/~eamde/site/content_qres.php These Slides http://www.slideshare.net/jonathw/whittle-modeling-wizards-2012

Editor's Notes

  1. MODELS 2001, Toronto
  2. Examples to show the diversity of how models/MDD is currently being used in industryBanking example: effort to define an industry-wide standard that will unambiguously and precisely define a set of domain concepts for financial applications (e.g., model for account transfer). Clearly, a massive, industry-wide undertaking. Limited code generation – since essentially trying to extract business rules currently hidden in Java code.
  3. Need some anecdotes here
  4. Up to here: estimated 25 minutes
  5. Up to here: 32 minutes
  6. Up to here: 42 minutes
  7. Mainly due to lack of resources
  8. Mainly due to lack of resources
  9. Business driver
  10. Ground-up
  11. The motivation behind the start of the MDE/reuse effort was that engineers were developing for their own designs for different vehicles/vehicle types – which led to huge complexity in terms of manpower
  12. Before the effort, specs were being produced and then outsourced for writing code – which inevitably led to lack of consistency between spec and code
  13. Although this was a centralized effort coming from management, it was implemented ground-up not as big bang
  14. Business driver: the software engineers didn’t exist (or were too expensive)
  15. Motivation for building an in-house code generator
  16. 2 side effects of obsessing about code generation: (i) cost arguments wont make sense, because holistic effects not taken into account; (ii) abstractions will be too low level
  17. All new software/hardware from scratch; hardware guys were applying new technology for performance improvements
  18. Not ground up
  19. No control since tool too big/not understandable/didn’t do what they wanted
  20. No control since tool too big/not understandable/didn’t do what they wanted
  21. Gains offset elsewhere
  22. That is, in the model – thousands of features that were really hard to add in the modeling language and then figure out how the code would be generated
  23. Disclaimer image
  24. Snowball image
  25. Disclaimer image
  26. Disclaimer image
  27. Disclaimer image
  28. Comment on how some managers prefer agile because it is (perceived to better) support decentralised management
  29. Pragmatism prevails!
  30. Inconclusive but illustrates that UML is not universally accepted
  31. Inconclusive but illustrates that UML is not universally accepted
  32. Inconclusive but illustrates that UML is not universally accepted