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

What do we want to measure?. 1

How to measure system complexity?. 2

What complexity metrics  can be used?. 2

 

What do we measure?

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.

What should be included in or excluded from system complexity measurement?

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?

What complexity metrics  can be used?

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