CS3007A Software Project Management

Problem Sheet 8

Lecturer: Dr Robert Macredie

E-mail: Robert.Macredie@brunel.ac.uk,

Introduction

In the eighth session we talked about software maintenance. We tried to define software maintenance and considered its importance/relevance to SPM. We then looked at a range of important issues in software maintenance, grouping them around the relevance and impact that maintenance activities have on systems, the way in which software maintenance is perceived in the profession, and the ways it is perceived as a subject in information systems and computing. We then explored different types of maintenance. We concluded by considering the situation that many software-reliant organisations now find themselves in, having maintained systems over many years until they are 'unstable', and thought about ways in which they might address this problem.

Learning Outcomes

The learning outcomes for the problem sheet are as follows:

(i)     you should be able to provide a broad definition of software 
        maintenance and argue its usefulness;

(ii)    you should be able to explain the importance of software 
        maintenance to SPM and the contribution it makes to organisations 
        with software systems;

(iii)   you should be able to define different classes of software 
        maintenance and explain the contribution that each makes to an 
        organisation dependent on software systems;

(iv)    you should be able to discuss critically the problems facing 
        organisations operating software systems which have been subject 
        to many years of various maintenance activities.

Questions

(i)     What important issues do you think should be represented in 
         a definition of software maintenance? Use this to frame of broad 
        definition of the term.  

(ii)    Why is software maintenance important in SPM? What problems 
        with SPM does it help address?  What contribution does it make 
        to organisations with software systems?

(iii)   Explain what you understand by the following classes of software 
        maintenance: corrective; perfective; adaptive; and preventive.  
        Define a brief scenario where each would be used.  

(iv)    What are the problems facing organisations operating software 
        systems which have been subject to many years of various 
        maintenance activities?  Think about the problems which each of the 
        types of maintenance activity might bring over time and the problems 
        that they might bring collectively.  
I would encourage you to work in groups of around five for this and subsequent exercises.


Robert Macredie

14 November 1998