Software Maintenance

Software that has been released needs to be updated or to evolve if the point of it is not to die. Therefore, a software maintenance is needed in order to maintain our software up-to-date. The software maintenance is divided in five stages or phases. The phases are: Software Maintenance Fundamentals, Key Issues in Software Maintenance, Maintenance Process, Techniques for Maintenance, and Software Maintenance Tools. I’ll explain them briefly in order to comprehend more about Software Maintenance.

Software Maintenance Fundamentals

Here, the definitions and terminology are stated. Also, here is state the nature of the maintenance. The needs for a maintenance can be to correct mistakes, improve the design, implement new ideas, create or implement new software, create a better interface, or simply retiring the software. It includes the maintenance costs and the possible evolution of the software.

Key Issues in Software Maintenance

In these phase technical issues, management issues, cost estimation, and measurement are stated. Regarding the technical issues, the limitations, analysis, and maintainability are discussed. In management issues, staff, process, and Organizational Aspects of Maintenance are discussed. Cost estimation depends on what is going to be edited or added. 

Maintenance Process

Here, the actual maintenance is going through. The maintenance processes checks the process implementation, problem and modification analysis, modification implementation, maintenance review/acceptance, migration, and software retirement. The maintenance activities divide all these processes.

Techniques for Maintenance

It is important to have different techniques of maintenance in order to know how to react to the different issues. Some steps to understand the issues in order to try to solve them are: the comprehension of the programs, reengineering, reverse engineering, migration, and retirement.

Software Maintenance Tools

Some tools can be so useful while giving maintenance to the software, some of them are: program slicers, static analyzers, dynamic analyzers, data flow analyzers, cross-referencers, and dependency analyzers.

Retrieved from http://swebokwiki.org/Chapter_5:_Software_Maintenance.

By Juan

Ramírez Guerra
and Miguel Angel Cabral Ramírez