The Design and Analysis of Evolvable Systems

Welcome to the Evolvable Systems Homepage

This is a resource page for The Evolvable Systems Project in the School of Computer Science, The University of Manchester, UK.

It contains explanatory material, published and draft papers, downloadable software and some relevant links.

What do we mean by Evolvable Systems?

The traditional understanding of computational systems and their analysis in terms of their semantics, logics and behavioural specification assumes that their syntactical descriptions determine the range of computational behaviours.

Increasingly, however, we build systems which may respond to external stimuli and change their computational behaviour accordingly, not by internal options but by reconfigurations determined externally. These external influences may either reflect an adaptive mode in which changes of environment determine changes in the computational system, or may be determined by internal imperatives in which a `monitoring process' (or a `supervisor') examines the computational behaviour of a system and determines appropriate evolutionary actions when the system behaviour requires modification. This is clearly related to the notion of `run-time monitoring' for system verification.

Examples of such evolvable systems are:

  • Adaptive query processing - evaluating queries over changing databases
  • Supervisory control, for example, for reactive planning
  • Business structure and process evolution - businesses responding to internal or external imperatives to modify structure and processes
  • Hybrid systems which are adaptive to changing environments and which may influence their environments
  • Automatic, or user-determined, system updates, e.g. for operating system security, or virus detection software
  • System reconfigurations to respond to changing environments, e.g. for internet computing.

Evolvable systems can when viewed in their entirety, including the computational behaviour of any supervisory processes, be treated as a closed system in the usual form and therefore open to standard treatments of semantics and logics.

However, this account misses crucial common structure which is present in these systems and makes their analysis quite different from ordinary computational systems. The common structure resides in (1) the way that monitoring processes have the ability to examine the behaviour of the underlying system, (2) the way that evolutionary steps interrupt computation and modify systems and their associated behaviour.

Of considerable interest also is the assembly of systems from evolvable components, with evolutionary steps available at the various levels of a structural hierarchy. In this way, we may build-in evolutionary capability into the design process as a new approach in Software Engineering.

[ Meta Buffers ]
Hierarchical structure of evolvable systems: Monitoring an evolvable buffer system.

Models and logics of evolvable systems

The Project involves: (1) devising suitable logics and models of evolvable systems, and (2) applications to the design, construction and verification of actual systems.

We have devised a logical framework for describing evolvable systems based on logics of revision and meta-level logics. We are now developing a theory of programming for hierarchical component-based evolvable systems.

An evolvable systems animator tool

The Evolvable Systems Animator Tool (ESAT) implements this logical framework (in Java), allowing users to input evolvable system specifications and execute evolvable programs in the specifications. To execute specifications, theorem provers of various kinds, including resolution-based provers and SAT/SMT provers, are used to determine the choice and validity of execution steps. The system has been developed by Djihed Afifi and is available from the ESAT webpage.


Members of the group include: Past members of the group include:

Publications and papers

Slides from talks

  • The slides from a Dagshtul talk (Jan 2007) summarising a basic logic framework for evolution.
  • Slides from the TASE talk (June 2007, Shanghai) summarising the logical framework for evolutionary component-based systems.

Related Work

The monitoring aspects of evolutionary systems are widely studied in Runtime Verification and the related topic of Specification Mining. We have introduced a new structure for first-order specifications for Runtime Verification and pattern-based Specification Mining. See the Runtime Verification page.

The notion of `reactivity' in computational systems is closely related to that of evolvability. As well as this work of evolvable systems we are investigating some reactive models of computation.


Here are few useful external links:

  • The Formal Methods webpages have a large volume of material including recommended books, publications, guide to conferences etc.
  • The Runtime Verification webpage is a guide to the RV workshops and other information.

Contact the Website Administrator with comments or queries about this website.
All material copyright ŠThe University of Manchester. Last update Jan 2007.