Supporting the Migration from Construal to Program: Rethinking Software Development
Abstract
Creative software design, where there is no theory, no pre-computer precedent, no set of requirements or even necessarily an objective, challenges all existing software development methods. There can be no assumption that end-users know what they want. Each and every situation is unique, unpredictable and due to feedback is continually changing. Fixed solutions developed by non-domain experts are all but impossible in more unconventional systems, and increasingly there may not be domain experts at all. Allowing individuals or groups of non-professionals to program is one approach (End-User Development). However, programming requires a degree of formality, design and specification that cannot co-exist with the most informal pre-theoretical applications which need to be developed by exploratory experimentation to help with problem-solving and sense-making. Instead of programming a finished application from the beginning, there is a need to develop personal, provisional and subjective models and evolve these into public, objective and assured applications. Developing these models ``on-line" through interactive experimentation is essential and it is the objective of Empirical Modelling (EM) research to enable the modelling of sense-making artefacts called construals.
Whilst existing EM tools are able to support construals there is a need to see how a smooth transition from construals to applications can be made. Such a migration is not one-way as the resulting applications need to remain plastic. The aim of this thesis is to explore and develop ways of enhancing EM principles and tools to better support such migrations from construals to programs.
By first identifying key characteristics of construals and associated principles and techniques, along with a critique of the existing EM tool, a new kind of environment for plastic software development is proposed. A major contribution of this thesis is the development of such a prototype environment which is illustrated using a collection of artefacts developed within it. From the prototype, called Cadence, an informal and a formal idealised account was elicited to provide a framework for this kind of development activity. The ideas explored in the thesis have the potential to impact upon the operating systems community and the everyday computer user in radical ways if taken forward. The thesis demonstrates that applications can be developed from construals without a translation step, keeping the resulting applications plastic.