Software Maintenance Research Paper

1977 Words8 Pages

7.5Maintenance Cost
Software maintenance accounts to a majority amount of the overall software development budget. Several surveys indicate that software maintenance consumes 60% to 80% of the total life cycle costs. These surveys also show that a significant amount of maintenance costs are due to software enhancements rather than corrections.
The following expression provides a model of maintenance effort:
M = p + Ke(c-d) where:M is total effort expended in maintenance p is productive effort
K is an empirical constant c is complexity attributed to the lack of good design and documentation d is a measure of the familiarity with the softwareProblems

7.6Typical Problems with Maintenance
Most problems that are associated with software maintenance …show more content…

The objective of reverse engineering is to study the underlying features like requirements, design etc. of a software system or recover and record critical information about the system. The system informationmay include the following: the system structure, the system’s functionality, the dynamic behavior of the system, the design process of the system, the construction, modules, documentation, and the test suites of the system.
The purposes for undertaking reverse engineering process are separated into different issues as follows:
• Quality issues which include simplification of complex software, removing errors from software thus increasing the quality of the software.
Management issues which include increase in programming standard and to implement better software maintenance techniques.
• Technical issues which include making major changes in a piece of software to be implemented and to discover and record the design of the system.
The reverse engineering process is represented in Figure …show more content…

This makes the source code easier to read and provides the basis for all the subsequent reverse engineering activities. The core of reverse engineering is an activity called extract abstractions. The engineer must evaluate the old program and from the source code, extract a meaningful specification of the processing that is performed, the user interface that is applied, and the program data structures or database that is used.
Reverse engineering is very important for the rest of the maintenance process including reengineering. Reverse engineering recovers abstract representation of the existing software system which has to be reengineered. This representation can be useful for subsequent reengineering or even reimplementation.
When using reverse engineering, the following problems have to be solved:
• Source code may be poorly structured and relevant documentation may be out of date.
• Design specifications may be incomplete.
• Existing system may be developed with inconsistent principles resulting in the difficulty to extract sufficient

More about Software Maintenance Research Paper

Open Document