Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline...

77
Model-Driven Software Development: Does anyone really use it? Jon Whittle joint work with John Hutchinson, Mark Rouncefield School of Computing & Communications Lancaster University, UK [email protected]

Transcript of Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline...

Page 1: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Model-Driven Software Development: Does anyone really use it?

Jon Whittle

joint work with John Hutchinson, Mark Rouncefield

School of Computing & Communications

Lancaster University, UK

[email protected]

Page 2: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

2001 AD

Page 3: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –
Page 4: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

I'm sorry, Dave. I'm afraid I can't do that.

Page 5: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –
Page 6: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

model-driven architecture

aka.

model-driven development

model-driven engineering

model-based software development

model-based design

model-integrated computing

domain-specific modeling

Page 7: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

model-based testing

A Typical Tester

Page 8: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

model-driven maintenance

A Typical Maintainer

Page 9: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

model-driven integration

A Typical Integrator

Page 10: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

agile modeling

Page 11: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

model-driven development with

Modelica

A Typical

Modelica-er?

Page 12: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

productivity

Page 13: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

maintainability

Page 14: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

portability

Page 15: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

interoperability

Page 16: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

all is well with the world

Page 17: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

except for…

those darned naysayers

Page 18: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –
Page 19: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

2013 AD

Page 20: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

who was right?

Page 21: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

talk outline• Project EAMDE

– Social/organizational/technical

factors

• Discoveries

– Some observations

– Some lessons

– Some tips

Page 22: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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

Page 23: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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

Page 24: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Diversity

Page 25: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Examples of MDD

Page 26: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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 modelinglanguage 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…”

Page 27: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

First discovery: a lot of MDD success is hidden

Page 28: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

UML BPMN Vendor

DSL

In-house

DSLSysML Matlab/

Simulink

Which modeling languages do you use?

(tick all that apply)

Page 29: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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

Page 30: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Second discovery: code generation is a red herring

Page 31: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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”

Page 32: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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

Page 33: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Don’t obsess about productivity

• 65-100% code

generated

• Figures on

productivity gains

differ

– 20-800% gain

– 27% loss

Page 34: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Third discovery:

the real benefits of

MDD are holistic

Page 35: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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”

Page 36: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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”

Page 37: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Fourth discovery: MDD must enable new things, not just speed up old things

Page 38: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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”

Page 39: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

People/Organizations

Page 40: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

The Psychology of MDD

Page 41: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Architects love MDD

Page 42: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

The code guru hates it

Page 43: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

as does the hobbyist developer

Page 44: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

It’s bad news for offshoring

Page 45: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Middle-managers

are usually the

bottleneck

Page 46: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

The MDD guru is likely

to be a developer and

domain expert

Page 47: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

MDD works best in companies

that are not in the

software business

Page 48: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

• 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”

MDD Works Best in Non-Software Companies

Page 49: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

What would 449 MDD

practitioners say?

Page 50: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

The “Community” of Respondents

Page 51: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Experience with MDD

• Initial exploration: 10%

• Prototyping: 10%

• First major project: 18%

• ~ 1/3: extensive experience of MDD on many

projects and/or over many years

Page 52: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Use of multiple languages

• 62% of those using custom DSLs 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

Page 53: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Unraveling points of contention related to MDD

Page 54: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Benefits of code generation

Q: Is your use of code generation an important

aspect of your MDD productivity gains?

Q: Is integrating generated code into your existing

projects a significant problem?

75% agree, 10% disagree

36% agree, 40% disagree

Page 55: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Changes on model or code?

Q: Do you mainly make updates on the model

rather than the code?

Q: Do you spend a lot of time synchronizing the

model and the code?

70% agree, 15% disagree

35% agree, 45% disagree

Page 56: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

MDD and Flexibility

Q: Does MDD make you faster at implementing

new requirements?

Q: Does MDD prevent you from responding to

business opportunities?

75% agree, 12% disagree

32% agree, 38% disagree

Page 57: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Effect of MDD on Training Costs

Q: Does using MDD allow you to employ

developers with less software engineering

experience?

Q: Does using MDD require you to carry out

significant extra training in modeling?

46% agree, 34% disagree

74% agree, 9% disagree

Page 58: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Complexity of UML

Q: Is UML too complex?

Q: Is UML powerful enough?

44% agree, 32% disagree

52% agree, 31% disagree

Page 59: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Tooling

Q: Are MDE tools too expensive?

Q: Do organizations attempt to deploy MDE using

inappropriate and/or cheap tools?

45% agree

55% agree

Page 60: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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 Factory, iUML, Kermeta, Lisp, LTS, M2Flex, Magic

Draw, Matlab/Simulink, Maven, Mendix, MetaEdit+, MetaSketch,

MiaGeneration, 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

Over 100 tools

Page 61: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Education, education, education

Page 62: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

• Are we teaching modeling the

wrong way?

– bottom-up versus top-down

– combine teaching modeling

& compilers/code

optimizationoptimization

Page 63: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Top 10 Tips for Practitioners

Page 64: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Keep Domains Tight and Narrow

1

Page 65: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Target well-documented, well-

understood domains

2

Page 66: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Put MDD on the Critical Path

3

Page 67: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

MDD works best when driven

from the ground-up

4

Page 68: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Be Careful About Gains

Offset Elsewhere

5

Page 69: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Don’t Obsess About Code Generation

6

Page 70: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Not everyone can think abstractly

7

Page 71: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Most projects fail at scale-up

8

Page 72: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Match tools/processes to the

way people think; not the

other way around

9

Page 73: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

OK, there were only 9…

10

Page 74: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

If you do all this

you might just find

that MDD is your

holy grail after all

Page 75: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

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)

Page 76: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

Dataset

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

Page 77: Model-Driven Software Development: Does anyone really … · 2013 AD. who was right? talk outline • Project EAMDE – Social/organizational/technical factors • Discoveries –

What Next?

Actively partnering with companies

Interviews

Focus groups

Observational studies