Software metrics is a new area of computer science aimed at assigning quantitative indices of merit to software. Here software means more than simple source code; 'software' as a generic for all the stages of tailoring a computer system to solve a problem is used here. All software passes through the following seven stages in its life cycle: (1) requirements analysis, (2) specification, (3) design, (4) implementation, (5) testing and integration, (6) maintenance and enhancement, and (7) replacement or retirement. Since software specification is always imprecise and since the demands on software change with time, backtrack cycles to earlier stages often take place. It is not uncommon for several stages to co-exist and influence each others progress.