The science of systems: systems as complex types

Copyright Graham Berrisford 2018. One of a hundred papers on the System Theory page at Last updated 04/03/2019 18:53

Find that page for a link to the next System Theory for Architects Tutorial in London.


You can’t understand systems without answering questions about the nature of description and reality.

These questions are often considered the domain of philosophers and linguists such Nietzsche and Wittgenstein.

There is some philosophy here, but the perspective is primarily scientific.


Some postmodernists have attacked science and reality, as reported in “A philosophical position statement”.

To the contrary, this story respects hard science.

It positions systems theory in a brief history of the universe and human evolution, and as a branch of science.

Our story of description and reality is rooted phenomena that emerged through the evolution of animals and human thought:

·         memories and messages

·         languages and logic

·         the use of logic to describe systems (this paper).


Recap. 1

System description as typification. 2

Describing a software activity system.. 3

Describing a human activity system.. 3

Describing a human or computer activity system.. 3

The science of system theory. 5




There were no descriptions before life

Before life there were things, but no description of them.

An understanding of the description-reality relationship has to start in biology.

Non-human animals communicate about things in the world effectively.

That is the empirical demonstration that they can model the world – well enough.


Animals evolved the ability to internalise descriptions of things – in memories.

They also evolved ways to externalise and share descriptions of things – in messages.

Messages and memories can represent reality to a degree – but perfect accuracy (or truth) is elusive.


Messages and memories contain what may be called “signs” in semiotics.

A sign is only meaningful or useful at those points in time when it is encoded or decoded by an actor.

Its meaning is in the understanding/intent of the encoder - or in the understanding/reaction triggered in the decoder.


There were no types before symbolisation

Verbalisation enabled us (humans) to formalise our sense of family resemblances between similar things into types.

And then to connect one type to another in a logical statement.

We now use types and logic to understand and manipulate the world better than other animals.

That is the empirical demonstration that types and logic are effective modelling tools.


There is no way to know the world “as it is”; the idea doesn’t even make sense.

Since Einstein's day, scientists take the view that all we can understand is models we make of the world.

That is equally true of non-verbal models and verbal models.

System description as typification

The system of interest is an island of orderly behavior in the ever-unfolding process of the universe.

Its processes depend on messages received and memories retained.

To describe it is to typify the actors, activities, memories and messages.



Abstract system

<creates>                     <represents>

System describer <envisages> Concrete system


A type is a description.

Moreover, a description may be viewed as a type.

Every coherent description, even a very long and complex system description, serves as a type definition.

Every system description can be instantiated (more or less) by many concrete systems.


But note that types can be fuzzy

A monothetic type, like “even number”, requires all instances of the type to have all its features.

A polythetic type, like “game” does not require that all instances of the type to have all its features.

For more on fuzzy logic and fuzzy sets, try this link


And there can be degrees of truth in a statement

Newton’s laws are true to the degree of accuracy we need, good approximations, neither wholly true nor wholly false.

Describing a software activity system

Software is strange and wonderful in that it perfectly aligns description and reality.

The description (the code) is perfectly performed.

The reality (the run-time) can only behave as described in the code.


Software system

Software system code

<creates>                     <represents>

Programmer <envisages> Run-time data & processes


There may be a perfect correspondence between description and reality.

But don’t confuse the software with the run-time operation of the system.

The software code is a relatively simple abstract description

The run-time system operation a very complex, electrically powered machine that reads the software and performs to the instructions in it.

Describing a human activity system

In essence, a human activity system is like a software system.


Human activity system

Roles and rules

<creates>                     <represents>

Business architect <envisages> Actors and activites


Humans rarely realise system perfectly.

Roles are more or less accurately performed by actors.

Actors may do more or less than is described.

That fuzziness in instantiating a system type is surely vital to success of human society.

Nevertheless, the system itself can be described using the similar tools

Describing a human or computer activity system


How to specify a system actor?

We define the role of the actor in terms of the activities they are expected to perform.

Humans have long classified human actors according to roles they play – a role is a type.

The Greeks divided dramatic roles into types: hero, ingénue, jester and wise man.

In the 11th century, The Domesday Book classified people into types according to their rank and role in a feudal society.


How to specify a system activity?

We define the inputs and outputs of the activity and the rules that apply to it

A rule definition states a precondition or post condition of an activity.

Each rule refers to the particular values of data types created and used by the activity.


Charles Antony Richard Hoare (1934 - ) is a British computer scientist.

Few have taken up his work on formal specification languages such as CSP and Z.

But, unknowingly, many use Hoare logic to describe how an activity changes the state of a system.

The logic is based on the Hoare triple, which may be expressed as: {Precondition} Activity {Post condition}.

The meaning is: If the precondition is true AND the activity proceeds to completion THEN the post condition will be true.


Hoare logic underpins many ways to analyse requirements and define business activities.

It can be seen in definitions of “value streams”, “business scenarios”, “use cases” and “service contracts”.


How to specify a process that connects activities in a logical flow?

We use the concept of an algorithm, which was known to Greek mathematicians and was formalized in the 1930s.

(See Wikipedia for references to Gödel–HerbrandKleene, Alonzo Church, Emil Post and Alan Turing.)

We often specify an algorithm using a process flow chart.


How to specify a message or memory?

We use a domain-specific language to specify the data types contained in messages and memories.

We define each data type in terms of a generic data type (number, text, date etc.) plus a domain-specific meaning.

We relate the data types in larger structures.

We relate data types in the structure of a message using the grammar of a regular expression (as in a structure of sequences, selections and iterations.

We relate data types in the structure of a memory using the grammar of predicate logic (as in an entity-attribute-relationship model.


Types and meta types



System description

Design time description

Meta meta model

Behavior type

Meta model

Business Process type


Insurance Claim Process type

Run-time behavior

Real world operation

Insurance Claim 999999

The science of system theory

The engineering of human and computer activity systems exemplifies the scientific method



1.      develop a theory that typifies how structures in the universe behave.

2.      run experiments to test that the structures do behave that way.


System describers

1.      write code that describes process types (behaviors) that create and use data types (structures).

2.      runs test to show that data is processed as expected.


You can’t understand systems without answering questions about the nature of description and reality.

These questions are often considered the domain of philosophers and linguists such Nietzsche and Wittgenstein.

There is some philosophy here, but the perspective is primarily scientific.


In so far as philosophy is about language, knowledge and truth, it seems to have been overtaken by biological and software sciences.

Read “The philosophy of system theory” for a “tractacus” written from the perspective of a psycho-biologist rather than a linguist or mathematician.


The position here is that system theory should be regarded as science.

System architects observe baseline systems, envisage target systems, and describe both.

This paper traces the pre-history of systems thinking and concludes with a few modern ideas.

It discusses the relationship of real world actors and activities to descriptions of them (as in data structures).

And the specification of rules as pre and post conditions of activities (as in business processes).

Below are some of the points made above.


Reality and descriptions of it

·         The systems of interest here are islands of orderly behavior in the ever-unfolding process of the universe.

·         Especially systems in which entities act (systematically) in response to information encoded in messages and memories.

·         And usually, systems in which that information describes or directs some entities or events in reality.

·         Our descriptions of reality are digital in the sense that we divide reality into discrete entities (structures) and events (behaviors). 2


Animal memories and messages

·         Only some descriptions of reality prove useful when tested.

·         Communication requires that a receiver decodes the same meaning from a message that a sender intentionally encodes in that message. 3


Human communications

·         Only humans invent words to symbolise things and their qualities.

·         The written record revolutionised our ability to think deeply, think straight, remember things and communicate. 5


Human languages, natural and artificial

·         The fluidity and imprecision of natural language enables human creativity and assists survival in a changing world.

·         For a system description to be holistic, unambiguous and testable, an artificial domain-specific language is needed.

·         A domain-specific language is an island of inter-related words with stable meanings, in the ever-unfolding evolution of natural language.


Thinking about systems  9

·         A system description is a complex type that represents the structures and the behaviors of each entity that realises the system.

·         To make testable assertions about a system’s behavior, we specify processes by their pre and post conditions.

·         A concrete system is composed of actors performing activities.

·         An abstract system typifies actors in role descriptions and activities in rule descriptions.

·         A role is a list of activities performable by an actor.

·         A rule is a precondition or post condition of an activity.


By the way, some systems thinkers speak of systems maintaining order, or “negative entropy”.

It turns out that thermodynamics is tangential to most practical applications of general system theory.

Having said that, a few notes on thermodynamics are included in the footnotes below.