Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S...

Post on 19-Dec-2015

215 views 0 download

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

mikkel.lauritsen@intentia.dk

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