Software Maintenance

Software is supposed to cover a user’s necessity and satisfy its requirements. For doing this, the software is supposed to evolve as the necessity itself evolves and new requirements start to surface. The process of finding new necessities and improving the software through time is called maintenance.

The purpose of maintenance is to:

  • Correct faults
  • Improve the design
  • Implement enhancements
  • Interface with the software
  • Adapt programs so that different hardware, software, system features, and telecommunications facilities can be used
  • Migrate legacy software
  • Retire software

The main characteristics of the maintainer’s activities are:

  • Maintaining control over the software’s day.-to-day functions
  • Maintaining control over software modifications
  • Perfecting existing functions
  • Identifying security threats and fixing the vulnerabilities
  • Preventing software performance from degrading

 

Types of maintenance

  1. Corrective maintenance: Correct discovered problems. It also covers emergency maintenance
  2. Adaptive maintenance: Performed after delivery to be sure that software remains effective
  3. Perfective maintenance: Modifications of a software after delivery to detect errors and latent faults.

 

Maintenance Processes

Software maintenance activities include:

  • Process implementation
  • Problem and modification analysis
  • Modification implementation
  • Maintenance review/acceptance
  • Migration
  • Software requirement

Don’t forget Maintenance

m
http://www.itservicemanagement-itil.com/software-maintenance-from-a-service-perspective/

In the software development lifecycle, the last phase (but not least) is Maintenance. Once you delivered software, defects are uncovered, environments might change and new requirementes will appear; thus, software maintenance is necessary. Its objective is to modify existing software while preserving its integrity. It’s also important to apply maintenance activities before the final delivery of software.

Maintenance consumes a major share of the financial resources in a software life cycle. I suppose its because it has no end (or until Retirement).

table
Preventative categories

There are key issues that must be covered to ensure a good maintenance, basically they are:

  • Technical issues
  • Management issues
  • Cost estimation
  • Measurement

proces

Techniques of Software Maintenance:

  • Program comprehension: To read and understand programs in order to implement modifications.
  • Reengineering: To alterate software to reconstitute it in a new form and to implement it. Refactoring is a reengineering technique that reorginizes the program without changing its behavior.
  • Reverse engineering:  To identify software’s components and their relantionships to reach higher levels of abstraction. Its purpose is to produce graphs from source code.
  • Migration: To modify software so it can run in different enviroments.
  • Retirement: When software reaches the end of its useful life. A previous analysis must be done to make the retirement decision.

As you can see, maintenance can be the most important phaste of the lifecycle, without it, the previous steps won’t be used to the maximum.

Source:


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

Continue reading "Software Maintenance"