Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... ·...
Transcript of Domain Software Engineering - TU Dresdenst.inf.tu-dresden.de/files/teaching/ws15/ring/... ·...
![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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/25.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/26.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/27.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/28.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/29.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/30.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/31.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/32.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/33.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/34.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/35.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/36.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/37.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/38.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/39.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/40.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/41.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/42.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/43.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/44.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/45.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/46.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/47.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/48.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/49.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/50.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/51.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/52.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/53.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/54.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/55.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/56.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/57.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/58.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/59.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/60.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/61.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/62.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/63.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/64.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/65.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/66.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/67.jpg)
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 ®ulatoryrequirements
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/68.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/69.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/70.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/71.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/72.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/73.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/74.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/75.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/76.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/77.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/78.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/79.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/80.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/81.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/82.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/83.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/84.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/85.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/86.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/87.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/88.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042804/5f5a3fdbf1abe465a939f42b/html5/thumbnails/89.jpg)
Ringvorlesung 2016: Domain Software Engineering
89Prof. Frank J. Furrer - WS 2015/16
Questions please