Abstract :
Software maintenance is the process of modifying existing operational software by correcting
errors, migration of the software to new technologies and platforms, and adapting it to deal with
new environmental requirements. It denotes any change made to a software product before and
after delivery to customer or user. Software maintenance is an important activity of many of
organizations today. This is no surprise given the rate of hardware obsolescence, the
immortality of a software product, and the demand of users to ensure that existing software
products run on newer platforms, run on newer environments, and or with enhanced features.
Software maintenance forms an essential component of software development. Therefore, with
an increasing use of computers in almost every organization whether big or small, there has
emerged the need for software maintenance. In this paper, we argue that software maintenance
and evolution are characterized by huge costs, slow speed of implementation, increased
complexity, requires technical expertise, be in line with new technologies, may introduce new
faults, yet changes and improvements are inevitable if software must stand the test of time.
Keywords :
Software , software maintenance , software evolution , reverse engineering