How to measure system complexity?
This is published under the terms
of the licence summarized in the footnote.
All free-to-read materials on the Avancier web site are paid for
out of income from Avancier’s training courses and methods licences.
If you find them helpful, please spread the word and link to the
site in whichever social media you use.
As W Ross Ashby said, real machines and operational
systems are infinitely complex.
All we can measure are the properties we
select for inclusion in our description of a system.
This paper considers some general principles
for measuring system complexity.
Contents
How
to measure system complexity?
What
complexity metrics can be used?
The rules
of football say a match starts with two teams of 11
players; it runs from kick off, through half time to the final whistle.
Every professional football match is the
same in so far as it systemically follows those simple rules
Yet every real-world match is also unique
in the immensely rich and complex
detail of individual footballer’s actions.
“It is important to set apart a theoretical
system from an empirical system.
·
[a theoretical system]
is a complex of concepts, suppositions, and propositions having both logical
integration and empirical reference.
·
[an empirical system]
is a set of phenomena in the observable world that is amenable to description
and analysis by means of a theoretical system.” Laszlo and Krippner
Here, we use the term operational system for whatever does or might work in the
real-world.
It is
impossible document all that exists and happens in a run-time operational
system (be it a clock or a computer, a bee or a
business)
In
describing a business, we never mention the blood in human veins or the
electrons in computers.
So,
all our systems descriptions are
abstractions; and the level of abstraction is chosen by the
describer.
As
W Ross Ashby said, real machines and operational systems are infinitely
complex.
All
we can measure are the properties we select for inclusion in our description of
a system.
What kind of system are we talking about?
All kinds of system – but especially human and computer activity systems.
Much of our knowledge comes from the world of software systems, because software design has to be so formal and detailed,
What is our ambition?
To optimise system design, or design optimal systems.
To minimise the number of people (N) needed to build and maintain a system of a given size (X).
To maximise the system size (X) whose design is maintainable by a given number of people (N).
What do we mean by
system design?
Defining components and processes to deliver the required services.
This can be done well, resulting in an economical system that runs efficiently and is easy to maintain.
Or it can be done badly, leading to a system that runs inefficiently, and is hard to maintain.
What kind of guidance
are we looking for?
How best to modularise a system.
Guidance that is quantified in a way that will help us manage scale and complexity.
Ways to measure alternative designs
Ways to monitor the evolution of a system design over its life time.
What questions would
we like answers to?
· How long and how complex should a process be?
· How big and complex should a component be?
· How many layers or levels of components should there be within the system we design?
· How many fine-grained components can be comfortably managed in one system?
· How many components should one component depend on?
· How many dependencies can there be between components in two systems before we should regard it as single system?
· Should a business store all its data in one central store? Or spread its data across many stores?
· If the latter, then how many data stores and how much data in each data store?
Of course:
There no fixed numerical answer to any of these questions.
But we’d dearly like to know how the numbers differ between good systems and bad systems.
Every real machine is infinitely complex.
A measure must assume a system
is bounded.
You exclude entities and
activities outside the system, in its environment.
E.g. in measuring the complexity of a retail shop, you ought to ignore
the remote payment card systems that enable payment card transactions.
A measure must
define the atomicity of components.
You exclude the internals of
components you consider to be atomic.
E.g. to measure the complexity of a human organisation, you ignore the
internal biochemistry of the humans.
Given a railway network, you ignore the internal complexity of
switching systems, and railway carriages.
A measure
likely excludes pre-defined components.
You probably exclude the internals of generic components you can plug in.
E.g. to measure the complexity of clock, you’ll probably ignore
the internal complexity of the replaceable battery.
A measure of
one view may hide complexity in another.
You have to consider what kinds of complexity matter to you.
Since there are infinite ways to juggle internal design elements and
trade complexity in one area for simplicity in another.
Reducing
the complexity of |
May increase the complexity of |
Individual
components |
Inter-component processes |
Inter component
communication |
Individual components |
Procedures |
Data structures |
Some other trade-offs are listed below.
Design
for speed |
Design for adaptability |
Simpler
purpose-specific design |
More complex general-purpose design |
Tight coupling of
parts |
Loose coupling of parts |
Business rules in
procedures |
Business rules in data structures |
The more
abstract the description, the simpler the system appears.
That implies you ought to multiply the measure of description complexity
by a measure of the abstraction gap between the description and the operational
system.
How to measure the gap? Unfortunately here is no rule governing how far
a description abstracts from reality.
Internal complication and external
complexity.
The internal
complication of parts and rules is one thing.
Ignoring these, you
might measure the amount and complexity of input-output transformations made.
This involves
counting and assessing the atomic inputs and outputs.
A technique called
function point analysis considers individual data movements made by information
systems.
Is there any similar
technique for other kinds of system?
There are at least 40 possible measures of complexity.
"The
diversity of measures that have been proposed indicates that the notions of
complexity that we're trying to get at have many different interacting
dimensions and probably can’t be captured by a single measurement scale”
"Complexity:
A Guided Tour" Chapter 7 "Defining and Measuring Complexity" Melanie
Mitchell.
See the next paper.
Footnote:
Creative Commons Attribution-No Derivative Works Licence 2.0 08/02/2015 01:34
Attribution: You may copy,
distribute and display this copyrighted work only if you clearly credit
“Avancier Limited: http://avancier.website”
before the start and include this footnote at the end.
No Derivative Works: You
may copy, distribute, display only complete and verbatim copies of this work,
not derivative works based upon it.
For more information about the licence, see http://creativecommons.org