domain software engineering - tu dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... ·...

89
Ringvorlesung 2016: Domain Software Engineering 1 Prof. Frank J. Furrer - WS 2015/16 Domain Software Engineering Prof. Dr. Frank J. Furrer Ringvorlesung TU Dresden WS 2015/2016 Montag, 1. Februar 2016 16:40 – 18:10 / INF E006 V1.0 / 30.1.2016

Upload: others

Post on 19-Jul-2020

40 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

1Prof. Frank J. Furrer - WS 2015/16

Domain Software Engineering

Prof. Dr. Frank J. Furrer

Ringvorlesung TU Dresden WS 2015/2016Montag, 1. Februar 2016

16:40 – 18:10 / INF E006

V1.0 / 30.1.2016

Page 2: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

2Prof. Frank J. Furrer - WS 2015/16

Content

• Introduction

• Divergence in Software-Systems

• Complexity in Software-Systems

• DSE Fundamentals

• Alignment & Continuous Integration

• Consequences for Industrial Software Development

• Conclusions

• References

Page 3: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

3Prof. Frank J. Furrer - WS 2015/16

DSE

Introduction

Page 4: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

4Prof. Frank J. Furrer - WS 2015/16

Domain-Driven Design [DDD]

Domain Engineering [DE]

Domain-Specific Languages [DSL]

Domain Language Engineering [DLE]

Domain-Specific Modeling [DSM]

Domain

Software

Engineering

[DSE]

Domain Software Engineering [DSE] =

an architectural methodology

for evolving a software system

that closely aligns to business domains

http

://w

ww

.icon

sh

ut.c

om

Page 5: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Future-Proof Software-Systems: Domain Software Engineering

5Prof. Frank J. Furrer - WS 2015/16

htt

p:/

/yam

info

tech

.org

/serv

ices.h

tml

There are different ways to approach software development.

For the last 20 years, the software industry has known and usedmany methods to create its products – each with its advantages

and shortcomings.

Here we investigate the method which started as «Domain-DrivenDesign».

Page 6: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

6Prof. Frank J. Furrer - WS 2015/16

1990 … today:

Various Software DevelopmentMethodologies

ISBN 0-321-12521-5, 2004

2004:

Page 7: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

7Prof. Frank J. Furrer - WS 2015/16

Download:http://www.infoq.com/minibooks/domain-driven-design-quickly[last accessed: 27.1.2016]

Page 8: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

8Prof. Frank J. Furrer - WS 2015/16

FF

FF

F

FF

FFF

F F

ExistingSW-System

FF

FF

F

FF

FFF

F F

F

F

F

EvolvedSW-System

DSE Context

htt

p:/

/w

ww

.clipart

pan

da.c

om

New BusinessRequirements

Project

Development Process

Divergence

Complexity

Page 9: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

9Prof. Frank J. Furrer - WS 2015/16

Divergence

htt

p:/

/w

ww

.3ilm

ch

ar3

i.n

et

htt

p:/

/w

ww

.foto

searc

h.c

om

Complexity

Development Process

Serious

obstructions

introduced

by many

software

development

processes

Page 10: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

10Prof. Frank J. Furrer - WS 2015/16

DSE

Divergence

htt

p:/

/w

ww

.3ilm

ch

ar3

i.n

et

Page 11: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

11Prof. Frank J. Furrer - WS 2015/16

htt

p:/

/w

ww

.su

therl

an

dw

esto

n.c

om

Divergence =

Mismatch between Business Needs

and IT-Implementation

http

://w

ww

.icon

sh

ut.c

om

Page 12: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

12Prof. Frank J. Furrer - WS 2015/16

Customer(«Business»)Customer

(«Business»)

ITProduct

ITProduct

htt

p:/

/de.c

lipart

logo.c

om

DesiredProduct

Example: «Please build a swing

for my little daugther»

Page 13: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

13Prof. Frank J. Furrer - WS 2015/16

Requirementsh

ttp:/

/pro

jectc

art

oon

.com

/cre

ate

/

How the customerexplained it

How the businessconsultantdescribed it

Specifications

How the projectleader understoodit

Page 14: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

14Prof. Frank J. Furrer - WS 2015/16

Implementationh

ttp:/

/pro

jectc

art

oon

.com

/cre

ate

/

How the analystdesigned it

How theprogrammersimplemented it

How the projectwas documented

Page 15: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

15Prof. Frank J. Furrer - WS 2015/16

Deploymenth

ttp:/

/pro

jectc

art

oon

.com

/cre

ate

/

When the projectwas delivered

Operation

What the customerreally wanted

Page 16: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

16Prof. Frank J. Furrer - WS 2015/16

What is the reason?

• Different vocabulary between business and IT

• Lots of implicit knowledge and assumptions

• No common model

Failed Communications!

htt

p:/

/m

ayrs

om

.com

Page 17: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

17Prof. Frank J. Furrer - WS 2015/16

DSE

Complexity

htt

p:/

/w

ww

.foto

searc

h.c

om

Ringvorlesung 2016: Domain Software Engineering

Page 18: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

18Prof. Frank J. Furrer - WS 2015/16

Complexity = (IT-) Risk

htt

p:/

/blo

g.d

igit

al.te

lefo

nic

a.c

om

Complexity

“Complexity is that property of an IT-system which makes it

difficult to formulate its overall behaviour, even when given

complete information about its parts and their relationships“

Page 19: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

19Prof. Frank J. Furrer - WS 2015/16

2 types ofcomplexity

Essential complexity

http

://w

ww

.acord

ceo.o

rg

Accidental Complexity

http

s:/

/acoare

covery

.word

pre

ss.c

om

Page 20: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

20Prof. Frank J. Furrer - WS 2015/16

Essential complexity Accidental Complexity

… is the inherent complexityof the system to be built.

Essential complexity for agiven problem cannot bereduced.

It can only be lessened bysimplifying the requirementsfor the system extension.

… is introduced by ourdevelopment activities or byconstraints from ourenvironment.

This is unnecessary and canbe reduced or eliminated.

Development methodology!

htt

p:/

/w

ww

.sh

erw

eb.c

om

Manage essential complexity

Combataccidentalcomplexity

Page 21: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

21Prof. Frank J. Furrer - WS 2015/16

http

://year7

his

tory

gr.e

du

blo

gs.o

rgh

ttp:/

/w

ww

.expert

o.d

e

Ton

iE

ste

ves

http

s:/

/cim

x.w

ord

pre

ss.c

om

Page 22: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

22Prof. Frank J. Furrer - WS 2015/16

DSE

Fundamentals (1/2)

Page 23: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

23Prof. Frank J. Furrer - WS 2015/16

Divergence =

Mismatch between:

Business Needs IT-Implementation

Frustration !h

ttps:/

/cim

x.w

ord

pre

ss.c

om

IT ImplementationCustomer/Business Needs

htt

p:/

/clipart

zebra

z.com

Essential Complexity Accidental Complexity

Misunderstandings

Lack of Precision

Semantic Differences

DSE

Page 24: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

24Prof. Frank J. Furrer - WS 2015/16

http

s:/

/cim

x.w

ord

pre

ss.c

om

IT ImplementationCustomer/Business Needs

htt

p:/

/clipart

zebra

z.com

DSE

Which are the key elements of DSE (Domain Software Engineering?)

1. Understanding the Business/Application Domain in terms of the business

( Domain Model)

2. Use of an ubiquitous language

(Business IT alignment)

3. Software: Implementation of Business Domain concepts

(Concepts Business objects Programm objects)

1. Understanding the Business/Application Domain in terms of the business

( Domain Model)

2. Use of an ubiquitous language

(Business IT alignment)

3. Software: Implementation of Business Domain concepts

(Concepts Business objects Programm objects)

Universale Ausdrucksform

Page 25: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

25Prof. Frank J. Furrer - WS 2015/16

The DSE concepts:

Business/Application Domain

Bounded Context

Domain Model

Anticorruption Layer

Page 26: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

26Prof. Frank J. Furrer - WS 2015/16

Business/Application Domain =

A Domain is a Sphere of Knowledge, Influence or Activity.

A Domain lives within a Bounded Context.

A Domain represents a well-defined Part of the Real World.

A Domain encapsulates a Domain Model.

http

://w

ww

.icon

sh

ut.c

om

htt

p:/

/blo

gs.m

sdn

.com

www.thinkddd.com

Page 27: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

27Prof. Frank J. Furrer - WS 2015/16

Bounded Context =

The Bounded Context is the Boundary of a Model.

When you have multiple Models you should defineBounded Contexts.

To map between Bounded Contexts you use a ContextMap.

www.thinkddd.com

http

://w

ww

.icon

sh

ut.c

om

htt

ps:/

/th

ou

gh

tsfr

om

this

flow

er.

word

pre

ss.c

om

Page 28: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

28Prof. Frank J. Furrer - WS 2015/16

Domain Model =

A Domain Model is a representation of the Entities,Relationships and their Properties in your Domain

The Domain Model should be recognizable andunderstandable by the business and IT

The domain model has sufficient essential detailswww.thinkddd.com

http

://w

ww

.icon

sh

ut.c

om

htt

p:/

/clipart

s.c

o/m

eeti

ng-p

ictu

res

Page 29: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

29Prof. Frank J. Furrer - WS 2015/16

Anticorruption Layer =

An Anti-Corruption Layer is a method to isolate two domainsor systems, allowing systems to be integrated without

knowledge of each other

An Anti-Corruption Layer presents a Facade to bothsystems, defined in terms of their specific models

Anti-Corruption Layers maintain the integrity of differingsystems and models

www.thinkddd.com

http

://w

ww

.icon

sh

ut.c

om

Page 30: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

30Prof. Frank J. Furrer - WS 2015/16

htt

p:/

/clipart

zebra

z.com

Business/Application Domain «A»

Definitions: SummaryDomain «B»

Bounded Contex «A»

Bounded Contex «B»

Domain Model «A»

IT Implementation «A»

AnticorruptionLayer

Page 31: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

31Prof. Frank J. Furrer - WS 2015/16

Examples:

Business/Application Domain

Bounded Context

Domain Model

Anticorruption Layer

Page 32: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

32Prof. Frank J. Furrer - WS 2015/16

htt

p:/

/w

ww

.skygu

ide.c

h

Example: Business/Application Domain

Domain = Flight Monitoring

Context:

Thousands of planes are in the air all over the planet. The flight

monitoring systems track every flight and avoid collisions

Page 33: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

33Prof. Frank J. Furrer - WS 2015/16

htt

ps:/

/w

ww

.fligh

tradar2

4.c

om

Example: Bounded Context SKYGUIDE Switzerland

Boundary = Contractual Responsibility within the European System

Page 34: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

34Prof. Frank J. Furrer - WS 2015/16

htt

ps:/

/w

ww

.fligh

tradar2

4.c

om

Example: Bounded Context

Anticorruption Layer = X-Compatibility Layer

Page 35: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

35Prof. Frank J. Furrer - WS 2015/16

Domain Model =

Reminder: A Domain Model is a representation of theEntities, Relationships and their Properties in your Domain

Entity: …

Properties:……

Entity: …

Properties:……

Entity: …

Properties:……

Entity: …

Properties:……

Entity: …

Properties:……

Relationships

Page 36: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

htt

p:/

/ww

w.f

aire

-sch

ule

.ch

Domain Expert IT Expert

Ringvorlesung 2016: Domain Software Engineering

36Prof. Frank J. Furrer - WS 2015/16

Business Domain

account

Checkingaccount

mortgageaccount

basicproperties

Customer

usesaccount

customer

account

mortgageaccount

Checkingaccount

owns

owns* *

**

Domain Model

Dialog

Page 37: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

htt

p:/

/ww

w.f

aire

-sch

ule

.ch

Domain Expert IT Expert

Ringvorlesung 2016: Domain Software Engineering

37Prof. Frank J. Furrer - WS 2015/16

«A domain model is not just the knowledge in a domain

expert’s head -

… it is a rigorously organized and selective abstraction of

that knowledge»

Eric Evans, 2004

Page 38: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

38Prof. Frank J. Furrer - WS 2015/16

Example 1:Flight Monitoring Domain Model

… Development of the Domain Model Search & Definition of Key Concepts

Route

Departure

Destination

Aircraft

Page 39: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

39Prof. Frank J. Furrer - WS 2015/16

Example 1:Flight Monitoring Domain Model

Aircraft Route Fix

3D-Point

Page 40: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

40Prof. Frank J. Furrer - WS 2015/16

Example 1:Flight Monitoring Domain Model

Aircraft

Fix

RouteFlight Plan

3D-Point

Page 41: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

41Prof. Frank J. Furrer - WS 2015/16

Example 1:Flight Monitoring Domain Model

Aircraft Flight Plan Route

Fix

3D-Point

Real-TimeTracking

CollisionAvoidance

High-LevelDomainModel

Page 42: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

42Prof. Frank J. Furrer - WS 2015/16

AgreementPortfolioeBO

OrganizationEntityeBO

RequesteBO

OperationeBO

ProducteBO

obligates/entitles

obligates/entitlesAgreementeBO

PartyeBO

aggregatesmanages

conta

ins

(indiv

idual)

iscontra

ctu

al

base

for

issues/a

cts

on

issues/a

cts

on

providesrules for

produces

offers specifies

contains(standard)

supports

/inclu

des

needs/re

ceiv

es

needs/re

ceiv

es

initia

tes/re

sults

from

ow

ns/c

ontro

ls

FinancialInstrumenteBO

iscom

mitte

dto

embodies

inclu

des/s

pecifie

s

Transfers/transforms

EconomicResourceeBO

Document/ReporteBO

TermConditioneBO

Example 2:Domain Modelfor a FinancialInstitution

Page 43: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

43Prof. Frank J. Furrer - WS 2015/16

htt

p:/

/kn

ow

how

.vis

ual-

para

dig

m.c

om

Problem:

Model-Explosion.

Size of themodels grows!

Buildhierarchical

models

Page 44: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

44Prof. Frank J. Furrer - WS 2015/16

AgreementPortfolioeBO

OrganizationEntityeBO

RequesteBO

OperationeBO

ProducteBO

obligates/entitles

obligates/entitlesAgreementeBO

PartyeBO

aggregatesmanages

conta

ins

(indiv

idual)

iscontra

ctu

al

base

for

issues/a

cts

on

issues/a

cts

on

providesrules for

produces

offers specifies

contains(standard)

supports

/inclu

des

needs/re

ceiv

es

needs/re

ceiv

es

initia

tes/re

sults

from

ow

ns/c

ontro

ls

FinancialInstrumenteBO

iscom

mitte

dto

embodies

inclu

des/s

pecifie

s

Transfers/transforms

EconomicResourceeBO

Document/ReporteBO

TermConditioneBO

Refinement

Hierarchy:

Top Level

Page 45: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

45Prof. Frank J. Furrer - WS 2015/16

PartnerdBO

ContactdBO

ServicingdBO

AdressingInstructiondBO

AddressdBO

VariousDatadBO

CompliancedBO

InstructiondBO

SegmentationdBO

PartnerPartnerContextdBO

PartnerDossierContextdBO

PartyeBO

AgreementeBOEnterprise

Level

DomainLevel

DossierdBO

PartnerAgreementdBO

refinement refinement

PartnerGroupdBO

Refinement

Hierarchy:

2nd Level

Page 46: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

46Prof. Frank J. Furrer - WS 2015/16

htt

p:/

/ww

w.f

aire

-sch

ule

.ch

Domain Expert IT Expert

Building a successful Domain Model

Fair, constructive and open dialog

Identify and describe:• Business concepts in the domain• Relationships• Attributes and contraints

Page 47: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

47Prof. Frank J. Furrer - WS 2015/16

Is behaviour part of a Domain Model?

htt

p:/

/w

ww

.healt

han

dlife

.com

.au

Yes!

The variables, constraints and

operations on domain concepts must

be identified and specified

Page 48: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

48Prof. Frank J. Furrer - WS 2015/16

Is behaviour part of a Domain Model?

Business Domain

account

Checkingaccount

mortgageaccount

basicproperties

Customer

usesaccount

Currency - $,£,..balance

NAME, Address

open

close

depositretrieve

Domain Model

variables

operations

constraints

variables

operations

constraints

mortgageaccountvariables

operations

constraints

customerowns

owns

* *

** variables

operations

constraints

Checkingaccount

Model enrichment

Page 49: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

49Prof. Frank J. Furrer - WS 2015/16

Domain Model

variables

operations

constraints

variables

operations

constraints

mortgageaccountvariables

operations

constraints

customerowns

owns

* *

** variables

operations

constraints

Checkingaccount

Model Code «Having created a great

model, but failing to

properly transfer it into

code will end up in software

of questionable quality»

Page 50: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

50Prof. Frank J. Furrer - WS 2015/16

Continuous Evolution of the Domain Model

Richness in Content

Richness in Expression

M1

t1

M2

t2

Mn

tn

Page 51: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

51Prof. Frank J. Furrer - WS 2015/16

DSE: Loss of Consistency

Time, Evolution

Loss of Consistency

Loss of Consistency

The code must be

an expression of the

model

A change in the

code may need a

change in the model

http

://pu

blic

dom

ain

vecto

rs.o

rg

DSE

Page 52: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

52Prof. Frank J. Furrer - WS 2015/16

Anticorruption Layer =

Anti-Corruption Layers maintain the integrity of differingsystems and models

Domain or System «A»

Concepts & Models

Domain or System «B»

Concepts & Models

Semantic Mismatch

Concept inconsistency

etc.

Page 53: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

53Prof. Frank J. Furrer - WS 2015/16

Domain or System «A»

Concepts & Models

Domain or System «B»

Concepts & Models

Anticorruption Layer

Explicit Mapping between contexts and code

Page 54: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

54Prof. Frank J. Furrer - WS 2015/16

DCF

System «A»

• Reference: DCF77• Resolution: 1 sec• Operation: continuous

E287A19B5

System «B»

• Reference: quartz impulses• Resolution: 1 msec• Operation: counter• Nulled at power-up

Example:Concept «Time»

Get{time}

22:09:01 E287A19B5

Anticorruption Layer

Page 55: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Anticorruption Layer

Ringvorlesung 2016: Domain Software Engineering

55Prof. Frank J. Furrer - WS 2015/16

Example:Concept «Time»

DCF

System «A»

• Reference: DCF77• Resolution: 1 sec• Operation: continuous

22:09:01

E287A19B5

System «B»

• Reference: quartz impulses• Resolution: 1 msec• Operation: counter• Nulled at power-up

E287A19B5

Agree on:• Common (external)

reference• Exchange format

Page 56: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

56Prof. Frank J. Furrer - WS 2015/16

Maintains the integrity ofdiffering systems and models

Sphere of Knowledge, Influenceor Activity

“Formal” representation of theEntities, Relationships and theirProperties in your Domain

The Bounded Context is theexplicit Boundary of a Model

Summary: The DSE concepts:

Business/Application Domain

Bounded Context

Domain Model

Anticorruption Layer

htt

ps:/

/w

ww

.pin

tere

st.

com

Page 57: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

57Prof. Frank J. Furrer - WS 2015/16

DSE

Fundamentals (2/2)

Page 58: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

58Prof. Frank J. Furrer - WS 2015/16

The Tools:

Context Map

Ubiquitous Language

Domain-Specific Language

DSE Patterns

Page 59: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

59Prof. Frank J. Furrer - WS 2015/16

Context Map =

A Context Map is a document which defines anddelineates the different bounded contexts for

systems/models and the relationships between them

http

://w

ww

.icon

sh

ut.c

om

htt

p:/

/aid

ium

.se

Page 60: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

60Prof. Frank J. Furrer - WS 2015/16

http

://in

do-e

uro

pean

lan

gu

ages.b

logspot.c

h

Example: Context = CountryBounded Context =

Country

Concepts =• Language

• Laws• …

http://dict.leo.org

“Pool” =SchwimmbeckenFondsPoolbillardBassinTümpelEinsatzFundusgemeinsame SpielkasseGrubeInteressengemeinschaftKonsortiumReservoirRing

Page 61: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

61Prof. Frank J. Furrer - WS 2015/16

Context Map

htt

p:/

/ro

trw

arz

on

e.b

oard

s.n

et

Can we modelthe whole worldin one model?

http://www.crainscleveland.com

A completeEnterprise?

http://securities.clarksons.com

A department?

NO – We need clearly defined boundaries for our models

Page 62: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

62Prof. Frank J. Furrer - WS 2015/16

Context Maphttp://www.crainscleveland.com

ApplicationArea 1:

MODEL A

Bounded Context A

ApplicationArea 2:

MODEL B

Bounded Context B

ApplicationArea 2:

MODEL C

Bounded Context C

Context Map =Definition of differentbounded contexts and therelationships between them

Page 63: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

63Prof. Frank J. Furrer - WS 2015/16

htt

ps:/

/blo

g.c

odecen

tric

.de

Example: Internet-Sales

Page 64: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

64Prof. Frank J. Furrer - WS 2015/16

A major reason for failure ofsoftware projects is a failureof people = the failure tocommunicateh

ttp:/

/jo

seph

_berr

igan

.tri

pod.c

om

Ubiquitious Language [UL] =

The Ubiquitous Language is a shared languagebetween the business and the development teams

The Ubiquitous Language comes from the business,and is enriched by the development team

www.thinkddd.com

Ubiquitious Language

Page 65: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

65Prof. Frank J. Furrer - WS 2015/16

• Business vocabulary

• Implicit knowledge

• No model

htt

p:/

/m

ayrs

om

.com

BusinessCustomer

Needs,Requirements

InformationSystemsEngineersSpecifications,Implementation

Ubiquitious Language

• IT vocabulary

• Implicit knowledge

• IT modelsseriouscommunications

gap

Page 66: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Future-Proof Software-Systems: Domain Software Engineering

66Prof. Frank J. Furrer - WS 2015/16

Formalization

highlow

«Boxes & Lines»Text

Ontologies

http

s:/

/cim

x.w

ord

pre

ss.c

om

IT OrganizationCustomer/Business

htt

p:/

/clipart

zebra

z.com

UL

UbiquitousLanguage

DomainExperts

SoftwareTeams

UML, SysMLBoxes & Lineswith semantics

Page 67: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Future-Proof Software-Systems: Domain Software Engineering

67Prof. Frank J. Furrer - WS 2015/16

How is an Ubiquitous Language developed?

High Level Domain Entities (Enterprise Level)Domain Concept Description Operations

Organization Entity Legal Entity forexecuting business

Create the entity

Internal organization of the entity

Agreements with other parties

Creation of financial products

Collaborate with other parties

Create reports

Operation Value-transferringactivity withadherence to legal &regulatoryrequirements

Define parties

Oblige parties

Check legal & regulatory requirements

Execute operation

Document & archive operation

etc.

etc.

… very often a good start is a textual table

Concepts

Definition

Operations

Page 68: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Future-Proof Software-Systems: Domain Software Engineering

68Prof. Frank J. Furrer - WS 2015/16

UbiquitousLanguage

DomainExperts

SoftwareTeams

Formalization

highlow

«Boxes & Lines»Text

OntologiesDSL’s

UML, SysMLBoxes & Lineswith semantics

TextualTable

Page 69: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

69Prof. Frank J. Furrer - WS 2015/16

htt

p:/

/ww

w.f

aire

-sch

ule

.ch

Domain Expert IT Expert

Content: Concepts, Behaviour, Constraints

How is an Ubiquitous Language developed?

Form: Syntax, Enrichment, Precision

Page 70: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Future-Proof Software-Systems: Domain Software Engineering

70Prof. Frank J. Furrer - WS 2015/16

Domain Specific Language =

A computer programming language of limitedexpressiveness focused on a particular domain.

The domain focus is what makes a limited languageworthwhile.

Fowler/Parsons 2011

http

://w

ww

.icon

sh

ut.c

om

htt

p:/

/blo

g.a

sh

a.o

rg

Page 71: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

71Prof. Frank J. Furrer - WS 2015/16

Domain-specific languages (DSLs) are currently beingdeveloped for many application domans, e.g. insurance,banking, robotics, …

htt

p:/

/de.s

lidesh

are

.net/

netg

uru

/spark

cam

p-j

aku

bn

aliw

aje

k

They may prove useful in specific fields of application (Risk: Dilution)

Page 72: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Future-Proof Software-Systems: Domain Software Engineering

72Prof. Frank J. Furrer - WS 2015/16

DSE Patterns =

Tried and true design and development referencesolutions for Domain-Driven Design (& Domain

Software Engineering)

http

://w

ww

.icon

sh

ut.c

om

htt

p:/

/w

ww

.urb

agra

m.n

et

Page 73: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

73Prof. Frank J. Furrer - WS 2015/16

©E

ricE

van

s,

2004

Eric Evans DDD Pattern Diagram:

Eric Evans:Domain-Driven Design Reference - Definitionsand Pattern Summaries, 2011.Downloadable from:https://domainlanguage.com/ddd/patterns/DDD_Reference_2011-01-31.pdf[last accessed: 29.1.2016]

Page 74: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

74Prof. Frank J. Furrer - WS 2015/16

DSE

Alignment & Continuous

Integration

Page 75: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

75Prof. Frank J. Furrer - WS 2015/16

Loss of Consistency: Continuous Alignment

Time, Evolution

Loss of Consistency

Loss of Consistency

Business Model

Domain Model

Code

must be in sync at

all times

http

://pu

blic

dom

ain

vecto

rs.o

rg

DSE

Page 76: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

76Prof. Frank J. Furrer - WS 2015/16

…NewBusiness

Requirements

Software Development Process

Continuous Alignment

Model Integrity:

«It is so easy to start from a good model

and progress towards an inconsistent one»

… and the correctness of the software

becomes suspect and its agility is damaged

Page 77: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

77Prof. Frank J. Furrer - WS 2015/16

Continuous Integration

«It is easy to make mistakes when we do not focus 100% on the

purity, integrity and consistency of the model»

NewReqs

checkmodel

integrity

checkmodel

integrity

checkmodel

integrity

Continuous integration is based on integration of concepts inthe model, then finding its way into the implementation whereit is tested

Page 78: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

78Prof. Frank J. Furrer - WS 2015/16

DSE

Consequences for Industrial

Software Development

Page 79: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

UL

Ringvorlesung 2016: Domain Software Engineering

79Prof. Frank J. Furrer - WS 2015/16

NewReqs

Domain Software Engineering (DSE)is an architectural methodology for evolving a software system

that closely aligns to business domains

• Massively business-oriented• Strongly model-based/model-driven• Continuous integration

Page 80: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

80Prof. Frank J. Furrer - WS 2015/16

DSE Expected Benefits:

Precise requirements

Minimal divergence business reqs IT implementation

Reduction of accidental complexity

Significant increase in software quality

Optimum agility/maintainability of the software

Excellent understandability

Page 81: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

81Prof. Frank J. Furrer - WS 2015/16

htt

p:/

/w

ww

.toyou

rhealt

h.c

om

DSE Obstacles:

Strict discipline needed

Willing business partners

Adequate development process & governance

Very competent people

Continuous refactoring

Up-front investments (for each project)

Page 82: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

82Prof. Frank J. Furrer - WS 2015/16

Is DSE difficult?

htt

p:/

/life

hacker.

com

Is DSE worthwhile?

htt

p:/

/w

ww

.fbn

port

al.com

YES

YES – but needs a strong

committment and muchcompany discipline

Page 83: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

83Prof. Frank J. Furrer - WS 2015/16

DSE

Conclusions

Page 84: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

84Prof. Frank J. Furrer - WS 2015/16

What have we learned?

htt

p:/

/in

str

ucti

on

ald

esig

n.o

rg

The Software Domain Engineering Concepts

The Software Domain Engineering Tools

The Pro’s and Con’s of DSE

Why is this knowledge good for you?

DSE is becoming an important methodology

in the (near?) future

DSE has a number of wonderful concepts

Introduction of DSE needs time/effort

Page 85: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

85Prof. Frank J. Furrer - WS 2015/16

DSE

References

Page 86: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

86Prof. Frank J. Furrer - WS 2015/16

References (1/3):

References

Evans04 Eric Evans:Domain-Driven Design – Tackling Complexity in the Heart of SoftwareAddison-Wesley, Boston, USA, 2004. ISBN 0-321-12521-5

Duffy04 Daniel Duffy:Domain Architectures – Models and Architectures for UML ApplicationsJohn Wiley & Sons, Inc., Chichester, UK, 2004. ISBN 0-470-84833-2

Nilsson06 Jimmy Nilsson:Applying Domain-Driven Design and Patterns – with Examples in C# and.NETAddison-Wesley (Pearson Education), NJ, USA, 2006. ISBN 978-0-321-26820-4

Vernon13 Vaughn Vernon:Implementing Domain-Driven DesignAddison-Wesley (Pearson Education), NJ, USA, 2013. ISBN 978-0-321-83457-7

Bjørner06 Dines Bjørner:Software Engineering 3 – Domains, Requirements, and Software DesignSpringer-Verlag, Berlin DE, 2006. ISBN 978-3-540-21151-8

Kleppe09 Anneke Kleppe:Software Language Engineering – Creating Domain-Specific LanguagesUsing MetamodelsAddison-Wesley (Pearson Education), NJ, USA, 2009. ISBN 978-0-321-55345-4

Voelter13 Markus Voelter:DSL Engineering – Designing, Implementing and Using Domain-SpecificLanguagesDslbook.org, 2013. ISBN 978-1-48121-858-0

Page 87: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

87Prof. Frank J. Furrer - WS 2015/16

References (2/3):

References

Millett15 Scott Millett, Nick Tune:Patterns, Principles, and Practices of Domain-Driven Design

John Wiley & Sons, Inc., Indianapolis, USA, 2015. ISBN 978-1-118-71470-6

Reinhartz13 Iris Reinhartz-Berger, Arnon Sturm, Tony Clark, Sholom Cohen, Jorn Bettin(Editors):Domain Engineering – Product Lines, Languages, and Models

Springer-Verlag, Berlin, 2013. ISBN 978-3-642-36653-6

Scotts14 Jason Scotts:Domain-Driven Desing – How to easily implement Domain-Driven DesignPrinted in Germany by Amazon Distribution, Leipzig, 2014. ISBN 978-1-631-87691-2

Evans15 Eric Evans:Domain-Driven Design Reference – Definitions and Pattern Summaries

Dog Ear Publishing,Indianapolis, USA, 2015. ISBN 978-1-45750-119-7

Avram06 Abel Avram, Floyd Marinescu:Domain-Driven Design - Quickly

C4Media Inc., USA, 2006. ISBN 978-1-4116-0925-9Download: http://www.infoq.com/minibooks/domain-driven-design-quickly

Kelly08 Steven Kelly, Juha-Pekka Tolvanen:Domain-Specific Modeling – Enabling Full Code Generation

John Wiley & Sons, Inc., Hoboken, N.J., USA, 2008. ISBN 978-0-470-03666-2

Gonzales08 Cesar Gonzales-Perez, Brian Henderson-Sellers:Metamodelling for Software Engineering

John Wiley & Sons., Chichester, UK, 2008. ISBN 978-0-470-03036-3

Page 88: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

88Prof. Frank J. Furrer - WS 2015/16

References (3/3):References

Fowler11 Martin Fowler:Domain-Specific Languages

Addison-Wesley (Pearson Education), NJ, USA, 2011. ISBN 978-0-321-71294-3

OSE03 Operating System Engineering:Domain Engineering

2003, Downloadabel from:https://www4.cs.fau.de/Lehre/SS03/V_OSE/Skript/03ose-A5.pdf [last accessed:2.12.1015]

Henderson12 Brian Henderson-Sellers:On the Mathematics of Modelling, Metamodelling, Ontologies andModelling Languages

Springer-Verlag, Heidelberg, 2012. ISBN 978-3-642-29824-0

Rumbaugh05 James Rumbaugh, Ivar Jacobson, Grady Booch:The Unified Modeling Language UML Reference Manual

Addison-Wesley (Pearson Education), NJ, USA, 2005. ISBN 978-0-321-24562-8

Sølvberg10 Arne Sølvberg:Domain Engineering: What is it?I. Reinhartz-Berger, A. Sturm, Y. Wand, J. Bettin, T. Clark, S. Cohen, J. Ralyté,and P. Plebani (Eds.): CAiSE 2010 Workshop DE@CAiSE’10, Hammamet,Tunisia, pp. 1-5, 2010. Downloadable from: http://ceur-ws.org/Vol-602/DE_CAiSE10_paper1_Solvberg.pdf [last accessed: 2.12.1015]

Bjørner05 Dines Bjørner:Domain Engineering

Downloadable from: http://www.imm.dtu.dk/~dibj/facs-domain.pdf [lastaccessed: 2.12.1015]

Taylor10 Richard N. Taylor, Nenad Medvidovic, Eric M. Dashofy:Intro to Domain-Specific Software EngineeringDownloadabel from:http://sunset.usc.edu/classes/cs578_2009b/23_Intro_to_DSSE.ppt

Page 89: Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... · Domain-Specific Languages [DSL] Domain Language Engineering [DLE] Domain-Specific Modeling

Ringvorlesung 2016: Domain Software Engineering

89Prof. Frank J. Furrer - WS 2015/16

Questions please