Current approaches to the realisation of software systems employ elegant domain
abstractions to handle system complexity. However, we do not preserve these
abstractions within the systems we create: rather, we defer to the language imposed
by the underlying architecture of computer hardware. Consequently, the intended
purpose of much of the software which comprises these systems becomes lost. This
results in software systems which require an in-depth knowledge of the specific
implementation in order to support subsequent change.
It is the use of computers in "real world" systems whose scale and complexity is
orders of magnitude greater than was originally anticipated by the inventors of software
languages that has contributed to the problem. In order to address this problem,
research into the application of novel techniques for large scale system
realisation is needed.
This research investigates the creation and use of domain machines which directly
execute domain abstractions, thereby preserving the structure and intent of the original
system design. The author proposes a framework for the realisation of domain
machines which when populated can provide separate specialised support for the
particular characteristics of a software system design.
The proposed framework is applied to two separate and very different case studies
that are both: on a scale with systems in industry and commerce; and are tested
through integration with an industrial/commercial software environment.
The research proves that adopting the framework is an improvement on traditional
approaches to large scale system construction and evolution, and also that the
framework is not specific to a single application domain.
A Doctoral Thesis. Submitted in partial fulfilment of the requirements for the award of Doctor of Philosophy of Loughborough University.