Researchers in model-driven development (MDD) should be intimately familiar with how MDD is used in industry. If they are not, there is a danger that new methods and tools are developed without proper consideration for the way that MDD developers actually work and think. A thorough understanding of current MDD industrial practice can inform research problems and ensure that research solutions are actually adopted.
This talk will describe results from a year long study, which applied methods from social science to understand how MDD is actually used in industry. Based on a survey of over 400 MDD practitioners, in-depth interviews with 22 industry professionals from 17 different companies, and a small number of on-site observational studies, the talk will discuss the current state-of-practice in industrial use of MDD, and will offer some insights on current research gaps.
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
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âŚâ
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
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â
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â
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â
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
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
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
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
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
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
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)
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.
Need some anecdotes here
Up to here: estimated 25 minutes
Up to here: 32 minutes
Up to here: 42 minutes
Mainly due to lack of resources
Mainly due to lack of resources
Business driver
Ground-up
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
Before the effort, specs were being produced and then outsourced for writing code â which inevitably led to lack of consistency between spec and code
Although this was a centralized effort coming from management, it was implemented ground-up not as big bang
Business driver: the software engineers didnât exist (or were too expensive)
Motivation for building an in-house code generator
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
All new software/hardware from scratch; hardware guys were applying new technology for performance improvements
Not ground up
No control since tool too big/not understandable/didnât do what they wanted
No control since tool too big/not understandable/didnât do what they wanted
Gains offset elsewhere
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
Disclaimer image
Snowball image
Disclaimer image
Disclaimer image
Disclaimer image
Comment on how some managers prefer agile because it is (perceived to better) support decentralised management
Pragmatism prevails!
Inconclusive but illustrates that UML is not universally accepted
Inconclusive but illustrates that UML is not universally accepted
Inconclusive but illustrates that UML is not universally accepted