Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S...
-
date post
19-Dec-2015 -
Category
Documents
-
view
215 -
download
0
Transcript of Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S...
Page 1
Model Based Software Development- a pragmatic view
Mikkel LauritsenIntentia R&D A/S
Page 2
Introduction
Modeling
Model based software development
... in an ideal world: MDA
... in the real world: DSL’s
Demo
Summary and questions
Agenda
Page 3
The next 2 x 45 minutes will be
Pragmatic
Useful in ”the real world”
Focused on technology
Introduction
Page 4
$The business angle
Page 5
Hopefully you will get an idea about
What is model driven software development?
Why use it?
Other stuff includes
a bunch of acronyms
Introduction
Page 6
Who am I?
33 years old, MSc in computer science
Works as a software architect at Intentia R&D in Ballerup
Does model based J2EE e-Commerce applications for a living
Introduction
Page 7
Introduction
Modeling
Model based software development
... in an ideal world: MDA
... in the real world: DSL’s
Demo
Summary and questions
Agenda
Page 8
As defined by OMG:
Designing before coding
A model is an abstraction – it gives a high-level description of objects
Models are often graphical
You often have specialized tooling for modeling
Modeling
Page 9
Level 0 Information (data)
Product(”DVD Player”, 299.95)
Level 1 Model (metadata)
Record(”Product”, (Field(”name”, String), Field(”price”, Money))
Level 2 Metamodel (meta-metadata)
Class(”Record”, (Attr(”name”, String), Attr(”fields”, List<”Field”>))
Class(”Field”, […])
Level 3 Meta-metamodel
Hardwired
Modeling
Page 10
Introduction
Modeling
Model based software development
... in an ideal world: MDA
... in the real world: DSL’s
Demo
Summary and questions
Agenda
Page 11
What is software development?
Specification
Design
Coding
Testing
etc.
And processes to connect it all
Software development
Page 12
´The challenge: it’s too difficult
Coding
Time to write code
Total time
Program size
Time spent
Page 13
The natural extension of programming languages
High-level primitives
The model becomes the code
Model based software development
Model(program) Artifacts
Generator(compiler)
Page 14
Design = code
Reduced time consumption – lower cost.
Early validation – perhaps more in theory than in practice
Agility
Simplicity - avoid (some of) the complexity that always creeps into large software projects
Platform independence
Advantages of model based development
Page 15
Compared to component libraries, modeling and code generation gives you
Simplicity
Consistency checking
Portability
No need for AOP and other dirty tricks
Modeling vs. component libraries
Page 16
Introduction
Modeling
Model based software development
... in an ideal world: MDA
... in the real world: DSL’s
Demo
Summary and questions
Agenda
Page 17
MDA is defined by the Object Management Group, OMG
http://www.omg.org
Much theory, little practice
Modeling: Model Driven Architecture
Page 18
Not targeted at any specific kind of applications
The core concern: platform independency
Platform Independent Model describes business logic
Platform Specific Model describes mapping to underlying platform
From the PIM programs are generated using one or more PSM’s
Modeling: MDA
Page 19
Mix of multiple languages for separate domains
Not really useful
Modeling: Unified Modeling Language
Page 20
XML is a way of expressing metadata (structure) in textual data
<book>
<title>Effective XML</title>
<author>Elliotte Rusty Harold</author>
<price>31.49</price>
</book>
XML is really great because of
ubiquitous tooling
human readability
Modeling: (XMI and) XML
Page 21
Introduction
Modeling
Model based software development
... in an ideal world: MDA
... in the real world: DSL’s
Demo
Summary and questions
Agenda
Page 22
More specific metamodel and code generation than in MDA
DSL’s have primitives that somehow match a domain
… defined technically, functionality-wise or in other ways
Examples: see http://compose.labri.fr/documentation/dsl/
Modeling: Domain Specific Languages
Page 23
On top of the advantages of more generic modeling like UML
Better coverage
Consistency checking - at a high level
All in all:
SIMPLICITY
Advantages of DSL’s
Page 24
Handling of nonfunctional requirements like
Performance
Concurrency support
Security
DSL’s make it harder to shoot yourself in the foot
Advantages of DSL’s, continued
Page 25
Introduction
Modeling
Model based software development
... in an ideal world: MDA
... in the real world: DSL’s
Demo
Summary and questions
Agenda
Page 26
Demo
Page 27
Introduction
Modeling
Model based software development
... in an ideal world: MDA
... in the real world: DSL’s
Demo
Summary and questions
Agenda
Page 28
Model based software development: generate code from model
Increases simplicity, lowers price
Allows you to focus on business value instead of technical details
Questions?
Summary and questions
Page 29