This document discusses software maintenance. It defines software maintenance as the modification of a software product after delivery to correct faults, improve performance, or other attributes. The document outlines the main types of software maintenance as corrective, perfective, adaptive, and preventative. It also discusses the major causes of maintenance problems such as unstructured code and insufficient documentation. Finally, it provides an example breakdown of maintenance activity with perfective maintenance making up 50% of efforts.