(Robert Deckers) One size doesn`t fit at all

Report
One size doesn’t fit at all
Atom Free IT
Robert Deckers v10 20141006
A comparison between MDD approaches
from a customer perspective
Atom Free IT
1
Content
• Model driven development and the hit parade
• The framework + examples
• What’s next
Atom Free IT
2
MDD was not in the (h)IT parade
• MDD approaches exist for 30 years
• Different names, different forms
• Large productivity potential
• Computers do it faster and better that humans
• Misunderstanding and disbelief have hindered large-scale adoption
• “We’ve tried it before and it didn’t work”
• A strong establishment:
• Revolution is more difficult than evolution
• Upfront investment is always difficult
• Pay the experts by the hour requires less responsibility
Atom Free IT
3
MDD enters the IT parade
• MDD is recognized:
•
•
•
•
More publications and conferences 
“We did it before. I am surprised it is forgotten.”
Terminology is stabilizing
I get questions about MDD:
• …. “can you also do this for my programming language?”
• “Which MDD approach should we use?”
• MDD is offered (and sold)
• More and more approaches offered by commercial suppliers.
• Terminology hijacking (M.I.N.O.)
• MDD is needed
• Demand for software functionality is higher that software supply.
• Functionality wins battles. Quality wins the war.
• Rugby players don’t win chess games
Atom Free IT
4
Just some options…..
•
•
•
•
•
•
•
Thinkwise
Mendix
Beinformed
MetaEdit+
Verum (ASD)
Serendip-it
Appmachine
•
•
•
•
•
•
•
Mbeddr
UML Modelling tools
xUML
Google appengine
Tobago
Webratio
MPS
• Outsystems
• Blueriq
• Rascal
• Xtext
• Movilizer/mobilitas
• Betty Blocks
• Scala
• Pega
• …..
Atom Free IT
5
Need it, seen it, let’s do it
Which MDD approach should we use?
A comparison would be nice.
A sustainable one please
 A framework for comparing MDD approaches
Atom Free IT
6
Main use cases
Per main use case:
• Sub use cases
• Cross use case aspects
Atom Free IT
7
Main elements of MDD approaches
Atom Free IT
8
Specify
Atom Free IT
9
Specify
1.
Sub use cases:
1.
How are models made
1.
2.
3.
2.
How do you change an already implemented model?
1.
3.
2.
How is this connected/related to functional management of other software?
How is the modelling language extended? (including everything related to it.)
Aspects for all uses cases:
1.
2.
3.
4.
3.
How do you analyse the impact of a change?
How are models managed?
1.
4.
What input is needed to make a model?
How are models verified? (syntactically correct.)
How is a model validated? (semantically correct. Is it a model of the right things?)
Modelling language (concepts and notation)
Modelling tool: approach specific vs standard tool vs configurable generic tool (also for transforming
models to software)
Modelling method (steps/phases and guidance)
Roles in modelling: e.g. domain expert, information analyst, modeller.
Process aspects: learning curve, education requirements. Method documentation,
modelling support...
Atom Free IT
10
Approach
Modelling concepts
Verification
Method
Thinkwise
Data model, triggers on data model, screen
layouts (based on basic layouts), process flows,
grouped in projects
Call,
extendible
None
Mendix
Domain model, attribute triggers, screen layouts
(based on basic layouts), microflows for notentity specific behaviour, grouped in modules
Call, no completeness
None
Beinformed
Products, Rules (calculations/decisions), register, At save, autocomplete
processes, grouped in repositories.
None
ASD
States, events, calls, notifications, interfaces,
components, graphical
Call,
state machine properties
Much
theory
available
MetaEdit+
Metaclasses, metarelations, properties.
graphical
Meta model compliancy,
self built.
Book
Serendip-IT
Action types, object types, hierarchy, functions,
operations, triggers.
Call, only partial
Explicit
method
Atom Free IT
11
Realise
Atom Free IT
12
Realise
1.
Sub use cases:
1.
2.
How is a model completed for transformation?
How is the transformation configurated?:
1.
2.
3.
3.
4.
How is the transformation prototyped and/or simulated? (if possible)
How does the transformation go?
1.
2.
3.
5.
2.
Generation and/or interpretation?
What is the output?
Retransformation into existing system (existing code and existing data)
How is the application completed?
1.
2.
3.
4.
6.
Which transformation rules are selectable and/or adjustable?
Which choice for the runtime architecture?
In general: what are the parameters?
What has to be added tot the transformation output to get fully functional software?
What interfaces are there to add own code?
How goes the integration with other systems/software?
What still has to be programmed?
How is the application tested?
Aspects:
1.
How does the development environment look like?
1.
2.
2.
For programming
For transformation
What is the approach for DTAP?
Atom Free IT
13
Approach
Transformation technique
Transformation rules
Thinkwise
Generation,
runtime framework
Fixed,
extendible for extra output.
Mendix
DB schema generated,
Rest runtime interpreted
Fixed,
DBMS configurable
Security level configurable
BeInformed Interpreter,
Partial transformation
Fixed,
Conf. mapping to existing database
ASD
Generation (via Verum server)
Runtime engine
Fixed,
output language conf,
multi/single threaded configurable
MetaEdit+
Generation from model repository
and own generator.
Transformation language for
programming generator
Serendip-IT
Generation + runtime library
Fixed, adjusted on request.
Atom Free IT
14
Use
Atom Free IT
15
Use the application
1. Use cases:
1.
Using the application:
1.
2.
3.
2.
What are the standard screens (GUI elements) and usage patterns?
Interface technology (web, mobile, desktop)
How is user authorization handled?
How is the software operationally managed?
1.
2.
3.
What interfaces are there for other software? (middleware, OS, DBMS, other applications)
Analyze a user problem or other operational issue?
Are there specific interfaces for application management?
2. Aspects:
1.
2.
User support (end user and application manager: training, help, helpdesk
Technical dependencies:
1.
2.
3.
Base platform (OS, middleware, DBMS) that must be installed?
Where is the application data stored?
Security? (other non-functional aspect: e.g. error handling)
Atom Free IT
16
Manage
Atom Free IT
17
Manage MDD approach
1.
Sub use cases:
1.
2.
How do you acquire the MDD approach?
How do you determine when to use the MDD approach for an application?
1.
2.
3.
3.
How is the investment curve?
1.
2.
3.
4.
At which moments you have to invest and when do they pay back and in which form?
How future proof is/seems the approach?
How goes the management of tooling, licences and other related assets?
How to replace or discard the approach?
1.
2.
Suited for which sort of applications? How is this exposed int he approach?
Which business domain and/or application domain?
Which non-functional properties?
How is the vendor lock-in?
Aspects:
1.
How does it change the system/enterprise architecture?
1.
2.
3.
What support does the supplier and partners offer for the approach?(modelling, transformation, operational)
Development department:
1.
2.
3.
4.
How is this different form non-MDD software? (processes, information models)
What is the impact on the overall development process and tooling?
What is the needed in-house expertise and how much?
What changes in the relation between business (customer) and IT/development?
What to do with existing (software) assets
1.
2.
Existing data?
What to do with the installed software base (existing applications)
Atom Free IT
18
Next…
• Improve evaluation of existing candidates
• More candidates: critical users please
• Improve the comparison framework: review and extend
• Extend framework from customer characteristics:
• Application domain
• Technology landscape: application and infra
• Development organisation: business and IT
 Please join, any contribution is welcome.
Atom Free IT
19
Thanks to:
• Sligro: Hugo Jaspers, René Buijssen
• IT-Visors: Marc Den Hartog, Mark Hameleers
• Nspyre: Stefan Dreverman
• TNO: Zoltan Papp, Julio de Oliveira, Yolanda Rieter
• FEI: Emile van Gerwen
• Pro!Flex: Marko Schulten
Thank you for listening
Atom Free IT automates the automation for true business agility
Presentation on: www.atomfreeit.com/mddcontent
Atom Free IT
20
modelling env ironment
modelling rmethod
modelling step
modelling tool
shows
handles
Notation element
defined in terms of
model v iew point
modelling
language
handles
represents
application framew ork
application landscpe
user interface element
modelling concept
according to
based on
technical interface
element
interface element
during
model v iew
application
application element
autorisation element
based on
from
detected on
on
to
based on
to
application problem
model
from
this is just one example
of the elements in an
applicaiton framework
framew ork element
MDD approach:
details
according to
transformation
execution
transformation rule
follows
execution
on
defines reaction to
model change
transformer
Atom Free IT
21

similar documents