2.1 Introduction
This chapter discusses software maintainability. In order to understand what software
maintainability is, we must understand what is meant by software maintenance. Software
maintenance and maintainability are studied in Section 2.2. To better understand what is
meant by software maintenance we also need to look at software life cycles. The effects of
continuous software development and maintenance on software's source code are known
as a phenomenon called software evolution. Software evolution, its laws, and software life
cycles are studied in Section 2.3.