Koskinen, J. (Collector of the material) “Software maintenance cost estimation (ITK S64)”. Dept. of Computer Science and Information Systems, Univ. of Jyväskylä (to appear).

 

PREFACE

This report contains the articles of the course: Software maintenance cost estimation (Ohjelmistojen ylläpidon kustannusten arviointi). Strong background knowledge on the area of software engineering is necessary, some knowledge on software maintenance is expected and knowledge on general software cost modeling is very useful but not necessary.

PART I provides a classic introduction to software engineering economics.

PART II discusses risk management. Risk-factors affect maintenance costs.

PART III discusses strategic business decisions related to maintenance policies.

PART IV contains a classic work on software maintenance project productivity.

PART V focuses on complexity metrics. Reliable metrics support maintenance cost estimations. Software complexity is the most studied part of this area.

PART VI depicts research which is explicitly focused on measuring maintainability. Proactive (preventive) maintenance aims at enhancing software maintainability, which often is an effective strategy in the “long run”.

PART VII gathers main articles of actual software maintenance task effort estimation. These models should help in deciding whether to perform maintenance (whether proactive or reactive).

PART IIX discusses estimating the costs of corrective maintenance, debugging, and Year 2000 problem (which is an example of a maintenance problem, whose cost effects were very large and hard to determine).

PART IX contains one of the few existing works focusing specifically on measuring the effects of code changes.

PART X discusses reengineering effects. Software reengineering aims at improving the maintainability of software. Although these improvements may be beneficial in the “long run” their implementation may also be too costly to be justifiable.

PART XI finally provides a detailed mathematical model for supporting the decision of whether to continue maintaining the existing software, rewrite it or replace it.

 

The following web-page will give further information and instructions for the course:

http://www.cs.jyu.fi/~koskinen/oyp3.htm

 

1.8.2003, Assistant Professor Jussi Koskinen

Department of Computer Science and Information Systems

University of Jyväskylä


 

CONTENTS

I

INTRODUCTION

I-1

Boehm, B. (1984). “Software engineering economics”. IEEE Transactions on Software Engineering 10 (1), 4-21.

II

RISK MANAGEMENT

II-1

Boehm, B. (1991). “Software risk management: principles and practices”. IEEE Software 8 (1), 32-41.

II-2

Sneed, H. (1999). “Risks involved in reengineering projects”. Proceedings of the Sixth Working Conference on Reverse Engineering, 204-211.

III

STRATEGIC BUSINESS DECISIONS

III-1

Sahin, I. & Zahedi, M. (2001). “Policy analysis for warranty, maintenance, and upgrade of software systems”. Journal of Software Maintenance and Evolution: Research and Practice 13, 469-493.

IV

MAINTENANCE PROJECT PRODUCTIVITY

IV-1

Banker, R., Datar, S. & Kemerer, C. (1991). “A model to evaluate variables impacting the productivity of software maintenance projects”. Management Science 37 (1).

V

SOFTWARE COMPLEXITY METRICS

V-1

Kafura, D. & Reddy, G. (1987). “The use of software complexity metrics in software maintenance”. IEEE Transactions on Software Engineering SE-13 (3), 335-343.

V-2

Lanning, D. & Khoshgoftaar, T. (1994). “Modeling the relationship between source code complexity and maintenance difficulty”. Computer 27 (9), 35-40.

V-3

Kemerer, C. (1995). “Software complexity and software maintenance: a survey of empirical research”. Annals of Software Engineering 1, 1-22. J.C. Baltzer AG, Science Publishers.

VI

EVALUATION OF MAINTAINABILITY

VI-1

Coleman, D., Ash, D., Lowther, B. & Oman, P. (1994). “Using metrics to evaluate software system maintainability”. Computer 27 (8), 44-49.

VI-2

Lehman, M., Perry, D. & Ramil, J. (1998). “Implications of evolution metrics on software maintenance”. Proceedings of the International Conference on Software Maintenance - 1998, 208-217. IEEE Computer Soc.

VII

MAINTENANCE EFFORT ESTIMATION

VII-1

Jørgensen, M. (1995). “Experience with the accuracy of software maintenance task effort prediction models”. IEEE Transactions on Software Engineering 21 (8), 674-681.

VII-2

Sneed, H. (1995). “Estimating the costs of software maintenance tasks”. Proceedings of the International Conference on Software Maintenance - 1995, 168-181. IEEE Computer Soc. Press.

VII-3

Abran, A., Silva, I. & Primera, L. (2002). “Field studies using functional size measurement in building estimation models for software maintenance”. Journal of Software Maintenance and Evolution: Research and Practice 14, 31-64.

VII-4

De Lucia, A., Di Penta, M., Stefanucci, S. & Venturi, G. (2002). “Early effort estimation of massive maintenance processes”. Proceedings of the International Conference on Software Maintenance - 2002, 234-237. IEEE Computer Soc.

IIX

DEBUGGING EFFORT ESTIMATION

IIX-1

McCabe, T. (1996). “Cyclomatic complexity and the Year 2000”. IEEE Software 13 (3), 115-117.

IIX-2

Jones, C. (1997). “Slow response to Year 2000 problem”. IEEE Software 14 (3), 114-115 (an interview).

IX

CODE CHANGE EFFECTS

IX-1

Munson, J. & Elbaum, S. (1998). “Code Churn: a measure for estimating the impact of code change”. In: Khoshgoftaar, T. & Bennett, K. (Eds.) Proceedings of the International Conference on Software Maintenance - 1998, 24-31. IEEE Computer Soc.

X

REENGINEERING EFFECTS

X-1

Sneed, H. (1995). “Planning the reengineering of legacy systems”. IEEE Software 12 (1), 24-34.

X-2

Visaggio, G. (2000). “Value-based decision model for renewal processes in software maintenance”. Annals of Software Engineering 9, 215-233.

XI

SOFTWARE REPLACEMENT

XI-1

Chan, T., Chung, S. & Ho, T. (1996). “An economic model to estimate software rewriting and replacement times”. IEEE Transactions on Software Engineering 22 (8), 580-598.

 

Updated: August 2, 2004 by Jussi Koskinen.