Please note: In order to keep Hive up to date and provide users with the best features, we are no longer able to fully support Internet Explorer. The site is still available to you, however some sections of the site may appear broken. We would encourage you to move to a more modern browser like Firefox, Edge or Chrome in order to experience the site fully.

Software Exorcism : A Handbook for Debugging and Optimizing Legacy Code, PDF eBook

Software Exorcism : A Handbook for Debugging and Optimizing Legacy Code PDF

PDF

Please note: eBooks can only be purchased with a UK issued credit card and all our eBooks (ePub and PDF) are DRM protected.

Description

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. , "Using Metrics to Evaluate Software System Maintainability," 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.

Information

Information