Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code

Bok av Bill Blunden
l IT HAS BEEN DOCUMENTED that the maintenance phase of the typical software project's life cycle accounts for over 60 percent of the total cost incurred. For all the pomp and circumstance heaped upon the design phase, once the first release has been deployed, most of the resources will be spent on fixing bugs, adding new features, and fixing bugs resulting from those new features. The post-release development cycle of the average software application resembles that shown in Figure 1. 1. Don Coleman et al. , "e;Using Metrics to Evaluate Software System Maintainability,"e; IEEE Computer, August 1994, pp. 44-49 xv Introduction Debug Test Profile Optimize H H H t I Test Debug I Add feature H H t Figure 1. Post-release life cycle o/the average software application The post-release cycle can be initiated by the addition of a new feature or the submission of a bug report. In either case, unit and system tests are used to determine if the patched code is doing what it is supposed to. Once the paths of execution have been sufficiently stabilized, the application can be profiled to locate performance bottlenecks. A variety of optimization tech- niques can then be implemented to increase execution speed and decrease memory footprint. As customers demand new features and report new bugs, the cycle will repeat itself and the application will evolve. Most books on software engineering focus intently on the phases of development leading up to the release of an application (e. g.