Software Engineering-The Economics of Re-Engineering

In a perfect world, every unmaintainable program would be retired immediately, to be replaced by high-quality, reengineered applications developed using modern software engineering practices. But we live in a world of limited resources. Reengineering drains resources that can be used for other business purposes. Therefore, before an organization attempts to reengineer an existing application, it should perform a cost/benefit analysis.

A cost/benefit analysis model for reengineering has been proposed by Sneed . Nine parameters are defined:

P1 = current annual maintenance cost for an application.
P2 = current annual operation cost for an application.
P3 = current annual business value of an application.
P4 = predicted annual maintenance cost after reengineering.
P5 = predicted annual operations cost after reengineering.
P6 = predicted annual business value after reengineering.
P7 = estimated reengineering costs.
P8 = estimated reengineering calendar time.
P9 = reengineering risk factor (P9 = 1.0 is nominal).
L = expected life of the system.

The cost associated with continuing maintenance of a candidate application (i.e., reengineering is not performed) can be defined as

            Cmaint = [P3 - (P1 + P2)] x L

 L The costs associated with reengineering are defined using the following relationship:

           Creeng = [P6 - (P4 + P5) x (L - P8) - (P7 x P9)] 

Using the costs presented in equations, the overall benefit of reengineering can be computed as

          cost benefit = Creeng - Cmaint 

The cost/benefit analysis presented in the equations can be performed for all highpriority applications identified during inventory analysis . Those application that show the highest cost/benefit can be targeted for reengineering, while work on others can be postponed until resources are available.
Software Engineering-The Economics of Re-Engineering Reviewed by 1000sourcecodes on 05:20 Rating: 5
Powered by Blogger.