Studies show that more effort is devoted to software maintenance (including software enhancement, adaption to new technologies and bug fixing) than for software development activities (that is about 40% for analysis + design + implementation). According to Boehm, the total effort spend during the software development life cycle is as follows –
The following deductions may be made from the above effort distribution –
- Greater effort (60%) is made for software maintenance activities (Adapt + Enhance + Bug Fix) than for software development (40% analysis + design + implementation )
- About 75% is spent for software testing and software maintenance
- About 16% is spent for software testing in software development phase (16 + 8 + 16 = 40%)
- Large effort (36%) is spent for software enhancement
- Software implementation requires lesser effort (<10%)
Software Engineering tools (Development and Management) used in software development helps to reduce the total effort devoted to software product. Now since greater effort is spend for software maintenance, Software Engineering tools and techniques aids in improving the quality and productivity of the initial product development phase, i.e it directs the goals of initial product development phase towards further reducing the overall effort and increasing software product visibility. For example a systematic approach to software development using Software Engineering tools and techniques will certainly improve the software quality, visibility and documentation levels which further eases efforts to be spend for testing, enhancing, adapting and fixing of bugs.