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.
“
”
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.
“
”