Software systems draw on our knowledge of the universe and the disciplines that study it. Our software architectures will benefit from drawing on other disciplines.
2. Observable Mimicry
The Foundational Sciences
Architecture
& Engineering
Organisms
Nature
Organism-
Made Tools
Inspiration for system
design draws on
cross-disciplined
mimicry.
3. Mimicry in Patterns
Common problems and solutions are documented.
Avoid reinventing the wheel.
“Pattern Name”
“Problem::Solution”
“Consequence”
4. Mimicry in Governance
Our method of defining and enforcing policies
mimics social and corporate governance.
“Policies”
“Governing Bodies”
“Approval Workflow”
5. Mimicry in Design
Design principles are
the foundation for our
software architectures.
“Iteration”
“Layering”
“Redundancy”
6. Mimicry in Religion
The gospels of software
development state a preferred
approach for followers.
“Rules”
“Best Practices”
“Tenets”
9. A System
The several ways to think of and define a system include:
• A system is composed of parts.
• All the parts of a system must be related (directly or indirectly), else there are
really two or more distinct systems
• A system is encapsulated, has a boundary.
• The boundary of a system is a decision made by an observer, or a group of
observers.
• A system can be nested inside another system.
• A system can overlap with another system.
• A system is bounded in time.
• A system is bounded in space, though the parts are not necessarily co-located.
• A system receives input from, and sends output into, the wider environment.
• A system consists of processes that transform inputs into outputs.
• A system is autonomous in fulfilling its purpose.
10. Same Type System Coupling
Decoupling is a mechanism for
separating independent systems.
12. Encapsulation
A gastroschisis or omphalocele occurs when a person is born
with their intestines or other internal organs outside their body.
The boundary for self-
containment isn’t always
intuitive.
15. Biomimicry
• Biologically Inspired Design - The
paradigm espouses use of analogies to
biological systems in generating conceptual
designs for technological systems.
• AKA, Biomimetics or biomimicry is the
imitation of the models, systems, and
elements of nature for the purpose of
solving complex human problems.
• Biology is the Template
16. Biomimicry in Software Systems
If you want to create a highly survivable system, don’t give it an off-button.
Let it earn money. Let it spend money.
Let it buy real-estate in the cloud of it’s choice.
Let it move when it desires.
Let it go. Let it evolve.
17. Principles of Autonomic Computing
1. Self-configuration: Automatic configuration of components;
2. Self-healing: Automatic discovery, and correction of faults;
3. Self-optimization: Automatic monitoring and control of resources to
ensure the optimal functioning with respect to the defined
requirements;
4. Self-protection: Proactive identification and protection from arbitrary
attacks.
5. Self-aware: application “knows itself” and is aware of it’s state and
behaviors.
6. Context Aware: aware of its execution environment and able to react to
changes in the environment
7. Open: functions across multiple hardware and software architectures.
8. Anticipatory: anticipates needs and manages itself proactively
18. Multi-Organism Relationships
• Mutualism is a relationship in which both species
benefit.
• In Parasitic relationships one species benefits and the
other suffers.
• Commensalism is a relationship between species in
which one benefits and the other is unaffected.
• Symbiotic relationships can also be classified by the
physical relationship between the two species.
– Endosymbionts live inside the tissues of the host, while
ectosymbionts live outside of their partner species.
20. Within an organism there exists an
encapsulation hierarchy.
Each abstraction unit represents a
field of study.
The boundary between units
represents yet another field of
study.
21. Our software
systems are inspired
by the constructs we
use to make sense of
our world.
We create
hierarchies,
taxonomies,
grammars and
lexicons – entire
fields of study to
provide the building
blocks of our
artificial, digital
worlds.
We are the
omnipotent deities
who strive to mimic
the beauty of the
universe and nature
that surrounds us.
22. Every biologist is, at heart, a chemist.
And every chemist is, at heart, a physicist.
And every physicist is, at heart, a mathematician.
And every mathematician is, at heart a philosopher.
And every philosopher is, at heart, a biologist."
—Anonymous
What is every software developer?
What is your inspiration?
What is your design center?
23. The Universe as Inspiration
Math, Physics, Chemistry
Protective
Structures
Survival Organisms
Nature
Organism-Made Tools
Clothing