ABSTRACT

This chapter considers the part of the software engineering process that takes place after the software is delivered. One may be surprised to learn that for many long-lived systems, maintenance accounts for more than 75 percent of the total cost of the software during its lifetime. For these long-lived products, this tip-of-the-iceberg situation occurs during times of considerable change in supporting technology and changing user expectations, and causes considerable changes that are called software evolution if they are gradual and could be called disruptive software otherwise. Hardware maintenance is different from hardware testing. Software maintenance could be described as the systematic process of changing software that is already in operation in order to prevent system failures and to improve performance. In corrective software maintenance, all activity begins with the identification of a problem with the existing software. Determining the particular module that is the cause of a problem can be difficult.