Taxonomy of Software Maintenance and Evolution

Priyadarshi Tripathy, Kshirasagar Naik · 2014

A major difference exists between software maintenance and software development: maintenance is event driven, whereas development is requirements driven. A process for software development begins with the objective of designing and implementing a system to deliver certain functional and nonfunctional requirements. On the other hand, a maintenance task is scheduled in response to an event. This chapter explains the idea of a maintenance activity taking in an input and producing an output. It explains the maintenance activities from three viewpoints: intention-based classification of software maintenance activities; activity-based classification of software maintenance activities; and evidence-based classification of software maintenance activities. The chapter identifies the key factors influencing the maintenance process. It discusses eight laws of software evolution for E-type closed source software (CSS) systems. The cost of maintaining commercial off-the-shelf (COTS)-based software systems represent a significant fraction of the total cost of developing software products.

Read the paper · More papers on PaperTik