1Objective of this Research The work presented here is intended to develop a simple calibratable simulation model of a long-term software evolution process. This base model will act as a test-bed for the examination of effects of long-term software process 'improvement' proposals, since it will be possible to modify it to reflect the effects on the process of any particular proposed change.The use of an existing simulation in this way is not itself novel. Existing work on the same lines (Tveldt and Collofello 1995;Haberlein, 2003) use Abdel-Hamid and Madnick's model (1991) as a base. However, they are examining the effect on a single development project as against the longer-term effect over many years and many releases considered here. In addition, the latter is a complex model, with many variables and a considerable number of inputs to calibrate. The base model presented here is intended to be as simple as possible whilst allowing the crucial variables to be manipulated. The simplicity has a number of advantages:• the base model is easier to calibrate, requiring fewer inputs to be quantified; • in the same way, it should be easier to reflect proposed process changes, since fewer changes to the model structure and/or fewer calibration inputs need to be taken into account; • there is less potential for the model to fail to reflect reality after changes to go wrong when simulating a process change, since this inevitably results in taking a model outside its known behaviour envelope; and • the evaluation and interpretation of results of proposed process changes is more easily understandable.On the other hand, some of the subtleties in process changes may be missed with this approach.
2The Base Model Described
Model StructureThe model presented in this section represents the structures, effects, inputs and outputs of a long-term software evolution process. To allow the adoption of different methods and approaches to be simulated it is important that the base model is simple. A sufficiently simple base model will allow the simulation of generalised software development and evolution activities without any bias for or against any particular method, toolset or approach.