TY - JOUR
T1 - The Pervasiveness of Evolution in GRUMPS Software
AU - Evans, Huw
AU - Atkinson, Malcolm
AU - Brown, Margaret
AU - Cargill, Julie
AU - Crease, Murray
AU - Draper, Steve
AU - Gray, Phil
AU - Thomas, Richard
PY - 2003/2
Y1 - 2003/2
N2 - This paper describes the evolution of the design and implementation of a distributed run-time system that itself is designed to support the evolution of the topology and implementation of an executing, distributed system. The three different versions of the run-time architecture that have been designed and implemented are presented, together with how each architecture addresses the problems of topological and functional evolution. In addition, the reasons for the rapid evolution of the design and implementation of the architecture are also described.From the lessons learned in both evolving the design of the architecture and in trying to provide a run-time system that can support run-time evolution, this paper discusses two generally applicable observations: evolution happens all the time, and it is not possible to anticipate how systems will evolve as designs; and large, run-time systems do not follow a predictable path. In addition to this, rapid prototyping has proved to be extremely useful in the production of the three architectures; this kind of prototyping has been made much easier by designing the core set of Java abstractions in terms of interfaces; and building an architecture that allows as many decisions as possible to be made at run-time which has produced a support system that is more responsive to the user as well as the distributed environment in which it is executing.
AB - This paper describes the evolution of the design and implementation of a distributed run-time system that itself is designed to support the evolution of the topology and implementation of an executing, distributed system. The three different versions of the run-time architecture that have been designed and implemented are presented, together with how each architecture addresses the problems of topological and functional evolution. In addition, the reasons for the rapid evolution of the design and implementation of the architecture are also described.From the lessons learned in both evolving the design of the architecture and in trying to provide a run-time system that can support run-time evolution, this paper discusses two generally applicable observations: evolution happens all the time, and it is not possible to anticipate how systems will evolve as designs; and large, run-time systems do not follow a predictable path. In addition to this, rapid prototyping has proved to be extremely useful in the production of the three architectures; this kind of prototyping has been made much easier by designing the core set of Java abstractions in terms of interfaces; and building an architecture that allows as many decisions as possible to be made at run-time which has produced a support system that is more responsive to the user as well as the distributed environment in which it is executing.
U2 - 10.1002/spe.498
DO - 10.1002/spe.498
M3 - Article
SN - 0038-0644
VL - 33
SP - 99
EP - 120
JO - Software: Practice and Experience
JF - Software: Practice and Experience
IS - 2
ER -