Manipulating Complex Systems
by Paul Hazelden


    Synopsis

      The development of non-trivial computer systems in the real world (as opposed to research, demontration, etc.) involves manipulating complex systems.   A clear understanding of the nature of such systems is an essential pre-requisite of successful development.

       

    Introduction

      What is a Complex System?

      Complex System: a system in which the effect of a change cannot be predicted.

      To be more precise, it is a system in which the effect of some reasonably likely change cannot be predicted with sufficient precision to enable people to prepare for the change.

      It may be helpful to distinguish between complex and chaotic systems, although the two are not entirely distinct.

      • A chaotic system is one where you cannot predict the future state of the system even if you know the current state and assume nothing happens to change it.   The classic example is the weather, which can be predicted in general terms for a short period, but any prediction rapidly becomes inaccurate.
      • A complex system, on the other hand, can be quite stable and predictable, and can cope with some minor changes.   As long as the system continues unchanged, it will continue to function as expected.

      A complex system may cope with some changes, but other changes will cause large and unxepected alterations in its functioning.   It is this aspect which causes many software projects to fail and over-run on time and budget, and it has absolutely nothing to do with software development.

      .

      Simple and Complex

      It should be clear by now that I am using the terms 'simple' and 'complex' in a technical way.   I hope that this usage will make sense as a reasonably intuitive extension to the normal meaning of the words.

      'Simple', in this context, should be contrasted with 'easy'.   To make an analogy, think back to when you were doing sums at school.   When you knew how to add and subtract but not multiply or divide, if you had been given the task of adding together twenty numbers, this would have been simple but not easy.   Simple, in that you understood what was to be achieved, but not easy because of the number of steps involved.

      A complex task, at this stage, would have been to find the square root of four.   One one level, the task is much easier, but you would not have understood the concept, and would have had no way of reaching the answer.

       

    What is a System?

      Inputs, Processes and Outputs

      You can understand a system as something which takes an input or set of inputs and produces an output or set of outputs.   It is a set of objects which perform a process.   It can be made up of people and/or machines.   A system has a purpose or a function, and its success is determined by how well it fulfils that purpose.

      A simple system responds in a predictable way to change.   A simple system can be represented as follows:

      Process Diagram

       

      Feedback

      We can add feedback to our diagram of a simple system above...

      Feedback Diagram

      This does not automatically make the system complex, although every complex system has feedback as a central ingredient.

      It is probably helpful to take a few minutes considering the nature of feedback.   All life depends on the principle of feedback.   In particular, it depends on negative feedback.

      A regulator is a good example of negative feedback: the faster the engine goes, the more the regulator shuts down the steam; the slower it goes, the more the regulator opens up the steam.   The result is a reasonably consistent speed.

      Within our cells is an incredibly complicated environment in which many different chemical reactions are constantly taking place at carefully controlled rates.   If these reactions stop, or go at the wrong rate, we cease to function properly: we get ill or even die.

      For life to survive, it requires many different aspects of this environment to be kept within fairly strict limits: temperature, acid-alkali balance, salinity, etc.   These balances must be maintained despite the changes which are constantly occurring, both inside and outside the organism.

      Every one of these balances involves a negative feedback mechanism.

       

Home Page

Personal

Events

Family History

Humour

Books

Paul's Health

Sue's Health

Ministry

Crisis Centre

Europe Now

Finances

External Link - Crisis Centre Crisis Centre

External Link - BCAN BCAN

External Link - Community Project Community Project

Contact Us

Contact Form

Request Permission

Map

Writings

Interactive Gospel

Christian Articles

General Articles

Aphorisms

Links

Search this site

Complete file list

 


Go to the top of this page
Home | Personal | Ministry | Contact | Writings | Links
Display this page in a printer-friendly format

This page last updated: 1 January 1970
Copyright © 1999 Paul Hazelden
Page content last modified: 14 October 1999
Do you have any comments or feedback?  Either send me a message or write in the guest book.
You are welcome to print this page for your personal use, or create a link to it.  If you would like to use any part of this page in any other way, please read the standard terms and then contact me.
Page counter at 13:11 on 23 November 2024