Cost Estimation and Evolvability Monitoring for Software Evolution Processes

1 INTRODUCTION Software 1 evolution is a continuing process that encompasses no only ab initio development but all activities, enhancement, adaptation or fixing, that occurs after the first operational release. However, in the present paper we consider only the post first release portion of the evolutionary process. This includes projects for enhancement and adaptation of a current software system and subsumes its maintenance, however the latter is defined [e.g., ieee93]. Parenthetically we note that, in general and for several reasons, the term evolution is to be preferred to maintenance in the context of software for post first release activity. In hardware artefacts (e.g., cars), for example, the principal aim of maintenance is to compensate for wear, tear and material deterioration so as to restore the condition or performance to an earlier or even original state. Software, on the other hand, does not generally deteriorate through use but must be evolved to maintain it satisfactory with respect to the changing operational domain or purpose. Cost estimation in the context of ab initio software development has received considerably attention over the last decades, but not so in the context of evolution. Thus, techniques such as algorithmic estimation [boe81], estimation by analogy [she96] and those based on expert opinion [boe81] have been applied mainly to the ab initio case. The application of algorithmic techniques is exemplified by the COCOMO model in its various versions and extensions [boe81,coc00]. In that instance, however, extensions for estimating the cost of software maintenance have been proposed [e.g., boe81,gra87]. Analysis of continuing software evolution reveals, however, a number of unique features that must be considered in the search for estimation approaches that remain useful as a system evolves. Such features must also be taken into account in considering evolvability. This is briefly discussed in the final part of this paper. What are the characteristic features of the software evolution situation? A number are implied by the set of behavioural statements encapsulated in the laws of software evolution as described by their names, continuing change, increasing complexity, self-regulation, conservation of organisational stability, conservation of familiarity, continuing growth, declining quality and feedback system. These statements, their origin and the evidence in their support have been discussed elsewhere [leh74,85,feast]. Space limitations do not permit their discussion here. In the context of cost estimation, the laws suggest consideration of the following:

[1]  R G Coyle,et al.  System Dynamics Modelling: A Practical Approach , 1996 .

[2]  Frederick W. Faltin,et al.  Statistical Control by Monitoring and Feedback Adjustment , 1999, Technometrics.

[3]  Magne Jørgensen,et al.  Experience With the Accuracy of Software Maintenance Task Effort Prediction Models , 1995, IEEE Trans. Software Eng..

[4]  Manuel J. Barranco García,et al.  A Method for Estimating Maintenance Cost in a Software Project: A Case Study , 1997, J. Softw. Maintenance Res. Pract..

[5]  Barbara A. Kitchenham,et al.  Effort estimation using analogy , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[6]  Brian Randell,et al.  Iterative multi-level modelling. A methodology for computer system design , 1968, IFIP Congress.

[7]  Meir M. Lehman,et al.  Metrics of software evolution as effort predictors - a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[8]  James Stephen Marron,et al.  ADAPTING TO A NEW ENVIRONMENT: How A Legacy Software Organization Copes With Volatility and Change , 1998 .

[9]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[10]  Paul I. Feder TIMS Studies in the Management Sciences, Vol. 15: Management of Research and Innovation , 1981 .

[11]  M LehmanMeir,et al.  Rules and Tools for Software Evolution Planning and Management , 2001 .

[12]  R. L. Thomas,et al.  Modern Econometrics: An Introduction , 1997 .

[13]  Michèle Basseville,et al.  Detection of abrupt changes: theory and application , 1993 .

[14]  Paul M. Frank,et al.  Fault diagnosis in dynamic systems: theory and application , 1989 .

[15]  Meir M. Lehman,et al.  Feedback, evolution and software technology , 1996, Proceedings 10th International Software Process Workshop.

[16]  Meir M. Lehman,et al.  Effort estimation from change records of evolving software , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[17]  Meir M. Lehman,et al.  The FEAST Approach to Quantitative Process Modelling of Software Evolution Processes , 2000, PROFES.

[18]  Keith H. Bennett,et al.  A Staged Model for the Software Life Cycle , 2000, Computer.

[19]  Barry Boehm,et al.  Software economics: a roadmap , 2000, ICSE '00.

[20]  Victor R. Basili,et al.  A classification procedure for the effective management of changes during the maintenance process , 1992, Proceedings Conference on Software Maintenance 1992.