DDD and Evolution of Language and Model.ppsx

HadiAhmadi4 288 views 37 slides Aug 12, 2024
Slide 1
Slide 1 of 37
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37

About This Presentation

Slides from my talk at Ostadkar-02


Slide Content

DDD
& Evolution of Model and Language
Hadi Ahmadi - 9 August, 2024

We live in the world of models, each one a
lens through which we interpret the vast
complexity around us.

What is model?
Eric Evans
A model is a simplification.
It is an interpretation of reality that abstracts
the aspects relevant to solving the problem
at hand and ignores extraneous detail.

A model is a selectively simplified
and consciously structured form of
knowledge.

The model is the backbone of a
language used by team members.

A change in the language is a
change in the model.

Models are developed according to
underlying belief systems.
Worldview
Values
Ethics
Culture
Identity

Model and heart of design
shape each other.

Heart of Design, Fabric of the
Project
Some of my projects were very successful; a
few failed.
A feature common to the successes was a
rich domain model that evolved through
iterations of design and became part of the
fabric of the project.

Gall’s Law
A complex system that works is invariably found to
have evolved from a simple system that worked.


A complex system designed from scratch never works
and cannot be made to work. You have to start over,
beginning with a working simple system.

(Part of)
Evolution Dynamics
Part 2

A bit of history
“Programming Process” Paper in 1969
Continuing Program Growth
Program Growth Dynamics in 1971-1972
They realized that observed phenomena
should be interpreted as program Evolution
Manny
M.
Lehman

This phenomenon (evolution) is in practice so
inescapable that after reliability,
changeability is perhaps the most desirable
attribute of large, widely used, multi-function
programs.

E-type systems undergoes continuing change or
become progressively less useful. the change or
decay process continues until it is judged more cost
effective to replace the program with a recreated
version.
Continuing Change

Once a program exceeds some minimal size it reacts to
change like an inertial mass. It imposes a pattern of
behavior that can be locally modified but offers great
resistance to major change.
Inertial Effect

Large programs backed by organizations with substantial
budgets will constitute economic and sociological
investments and create behavioral patterns and trends
that can generally be changed only slowly.
Momentum Effect

Evolution is achieved by human
action in a societal framework.

If you see a behavior that persists over time,
there is likely a mechanism creating that
consistent behavior.
— Donella Meadows

Feedback Loops
When an initial change in a variable causes a chain reaction
that ultimately feeds back to the system and create further
change in the initial variable.

Equilibrating
Stabilizing
Regulating
Goal-seeking
Balancing Feedbacks
Sources of
Stability &
Resistance to Change

Amplifying,
Self-multiplying,
Snowballing
Reinforcing
Feedbacks
Can cause
healthy growth or
runaway destruction

Feedback loops exists in any large project.
The majority are balancing feedbacks in that
they tend to stabilize the process.

E-Type program evolution is a multi-level,
multi-loop, multi-agent feedback system
and must be treated as such to achieve
significant improvement over any reasonable
base.

Passive Adaptation?
Passive adaptation to a deteriorating
environment is a road to disaster.
— Jamshid Gharajedaghi

Complex systems cannot passively adapt
to their environments but should co-
evolve with them.

Pricing
Not a real photo of the project

Model
Intrinsic Feedback Loop
Environment
Models enters the
environment and changes it
Changes in the environment
reflects back to the model

Intrinsic Feedback Loop
E-programs become part of the world they model and get
embedded in it.


Conceptually at least, the program as a model contains
elements that model itself, the consequences of it's
execution.

The Real-
Estate?
Real-Estate, Apartment,
House, …
Files, Archive, Tags, …

Designs that become increasingly
complex demand more sophisticated
abstraction

Enhancing & Compensating
Progressive: activities that enhance system functionality by
addition or modification.
Anti-Regressive: activities intended to compensate for the
software aging effects.

we hypothesize that the life cycle of any
complex, dynamic system is, at least in
part, governed by the conflicting resource
demands of progressive and anti-
regressive activities.

Finding a proper balance between the
Progressive and Anti-Regressive activities
is essential for enabling cost-effective
further evolution.

Ignoring the need for anti-regressive
activity is decay, even if it is not immediately
visible.

Thank
you