Learn More
A different way to execute pure LISP programs is presented. It delays the evaluation of parameters and list structures without ever having to perform more evaluation steps than the usual method. Although the central idea can be found in earlier work this paper is of interest since it treats a rather well-known language and works out an algorithm which(More)
1. Abstract Software Engineers continue to search for efficient ways to build high quality systems. Two contrasting techniques that promise to help with the effective construction of high quality systems are the use of formal models during design and the use of components during development. In this paper, we take the position that these techniques work(More)
Large IT projects may not deliver what they promise. Often they are late. Often they are over budget. Often what is eventually delivered is not either what was originally specified nor what is actually needed. There are many reasons why this happens. We discuss some of those reasons here and argue that many of them are a consequence of failure to specify(More)
The UK e-Science Programme is a £250M, 5 year initiative which has funded over 100 projects. These application-led projects are underpinned by an emerging set of core middleware services that allow the coordinated, collaborative use of distributed resources. This set of middleware services runs on top of the research network and beneath the applications we(More)
We review the various arguments which have been advanced for and against the use of executable speciications. Examples are given of the problems which may arise in applying this technique and of the beneets which may accrue. A case study is reported in which execution is used to validate the published speciication of a commercially available package. We(More)
A dynamic system is one which changes its configuration as it runs. It is a system into which we can drop new components which then cooperate with the existing ones. Such systems are necessarily built from reusable components, since as soon as the system is reconfigured to use some new components, those new components must reuse the existing, still running,(More)
The ability to compensate for previous activities, often in the case of failure or exceptional events, is an important feature of long-running business transactions. In this paper, we present several extensions to existing notions of compensation for business transactions. The extensions are described using a business process modeling language called StAC(More)
This paper describes RolEnact: a process-modelling notation used to provide enactable models of process instances. The paper shows how RolEnact models may be produced which are equivalent to role activity diagrams (RADs). This allows the modeller to describe processes in a notation (RADs); which can be understood both by process consultants and process(More)