Friday 12 July 2013

Systems 101

Everything is interconnected.

We are surrounded by Systems.

Our task is to make sense of these Systems.

Our task is to search for the systematic in the complexity that surrounds us.

To make sense of it.

To control it.


Before we can control Systems, we need to understand them.

There are many things we need to know about Systems.

The first thing to know about Systems is that there are lots of them.

We need to take them one at a time.


In reaching an understanding of a System we need to approach it systematically.

We need a systematic approach to Systems.


In general

  1. Systems are Modular
  2. Systems are Hierarchical
  3. Systems are composed of smaller systems that are (ideally) Orthogonal to each other
  4. To make bigger Systems from smaller systems the subsystems need to be Composable
  5. To be composable, they need to have understandable Interfaces
  6. Open Systems are the means to make Systems effectively composable



When we understand all this, we will be in a position to Control the System.

Only then.

Modular

An Open System will be a modular construction where the architects have specifically chosen the granularity of the decomposition and the capabilities of the components to realise an evolving family of solutions towards an eventual Vision system. Establishing this Vision system and choosing the granularity are key aspects of creating a long-life architecture with potential for innovative enhancement. This is the Architecture.

Hierarchical

When we set out to explore a System, because we need to understand it to change or extend it, we immediately begin to think in terms of boundaries. What is in the system and what is outside it? What granularity of components (subsystems) do we need to consider? That is, we perceive a hierarchy of Systems and the System-of-interest is somewhere in the middle of this hierarchy. It itself is a subsystem of some higher system. And it is composed from subsystems, which are Systems to others. The boundaries of our System require us to define its parent(s), its siblings and its children.

Orthogonal

When looking for the boundaries that segregate the children, we look for subsystems that are, by and large, orthogonal. This means that changes to one component can be carried out largely independently of changes to its siblings. A well-designed (or well-analysed) System has orthogonal subsystems.

Composable

But it's not sufficient that subsystems have as little as possible interference with each other. They need to be able to be assembled in different configurations that are easily reconfigured to support evolutionary change. We describe such subsystems (or components) as composable. In an ideal world, all systems will be composable with as little effort as possible, so that they can participate effectively and economically in a larger system.

Interfaces

Composable systems must have interfaces that are the points of interaction with them. Describing a system is tantamount to describing its interfaces.

Open Systems

An Open System is a modular construction that has been designed in such a way that its modules have precisely defined and publicly owned interfaces, where these interfaces allow independent suppliers to provide improved capability by providing innovative, plug-compatible modules.This modular structure, made from modules with open interfaces, is referred to as an Open Architecture.