Overview of software maintenance activities Software maintenance is a widely accepted part of the Software Development Life Cycle. It refers to the modifications and updates done after the delivery of a software product. There are number of reasons, why modifications are required, some of which are listed below: New user Requirements - Over the time, user may ask for new features or functions in the software based on evolving needs in an organisation. Change to the Hosting Environment - If any of the hardware and/or platform (such as operating system) of the target host changes, software changes may be needed to keep adaptability. Updates, patches and upgrades – For externally sourced systems, the software vendor may make improvements from time to time to keep pace with technology trends or to enhance security or performance of the system. Legal and regulatory changes – Changes to laws and regulations may require changes to software.