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

29
Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S [email protected]
  • 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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

Page 1

Model Based Software Development- a pragmatic view

Mikkel LauritsenIntentia R&D A/S

[email protected]

Page 2: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia 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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

Page 3

The next 2 x 45 minutes will be

Pragmatic

Useful in ”the real world”

Focused on technology

Introduction

Page 4: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

Page 4

$The business angle

Page 5: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

Page 11

What is software development?

Specification

Design

Coding

Testing

etc.

And processes to connect it all

Software development

Page 12: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

Page 12

´The challenge: it’s too difficult

Coding

Time to write code

Total time

Program size

Time spent

Page 13: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

Page 19

Mix of multiple languages for separate domains

Not really useful

Modeling: Unified Modeling Language

Page 20: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

Page 26

Demo

Page 27: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

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: Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk.

Page 29