Saturday, March 6, 2010

Software Maintenance

" Software maintenance" here refers to the set of activities that are performed to keep a system operational as software changes after the system has been fielded. Software maintenance begins as soon as a system has been released to users for the first time in the case of incremental, evolutionary, or spiral developments. It then encompasses modifications to subsequent releases of the system.
At the time of software maintenance, a set of system components are in place, the system has been tested and accepted for operational use, operators have been trained, and logistics support has been arranged. Data accumulates in system databases as a result of operational use. Siri support team adopts a unique global delivery model for support, which takes advantage of the time zone differential to enhance the existing system without affecting any downtime in the operation.

DEFINITIONS:

“Software maintenance is the process of modifying a software system or componentafter delivery to correct faults, improve performances or other attributes, or adapt toa changed environment.”

“Software maintenance is the totality of activities required to provide cost-effectivesupport to a software system. Activities are performed during the pre-delivery stageas well as the post-delivery stage. Pre-delivery activities include planning for postdeliveryoperations, supportability, and logistics determination. Post-deliveryactivities include software modification, training, and operating a help desk.”

TYPES:

Corrective maintenance: reactive modification of a software product performedafter delivery to correct discovered faults.

Adaptive maintenance: modification of a software product performed after deliveryto keep a computer program usable in a changed or changing environment.

Perfective maintenance: modification of a software product performed after deliveryto improve performance or maintainability.

Emergency maintenance: unscheduled corrective maintenance performed to keep asystem operational.

PROCESS:

This international standard[1] describes the six software maintenance processes as:
1. The implementation processes contains software preparation and transition activities, such as the conception and creation of the maintenance plan, the preparation for handling problems identified during development, and the follow-up on product configuration management.

2. The problem and modification analysis process, which is executed once the application has become the responsibility of the maintenance group. The maintenance programmer must analyze each request, confirm it (by reproducing the situation) and check its validity, investigate it and propose a solution, document the request and the solution proposal, and, finally, obtain all the required authorizations to apply the modifications.

3. The process considering the implementation of the modification itself.

4. The process acceptance of the modification, by confirming the modified work with the individual who submitted the request in order to make sure the modification provided a solution.

5. The migration process (platform migration, for example) is exceptional, and is not part of daily maintenance tasks. If the software must be ported to another platform without any change in functionality, this process will be used and a maintenance project team is likely to be assigned to this task.

6. Finally, the last maintenance process, also an event which does not occur on a daily basis, is the retirement of a piece of software.

Software maintenance is done by professionals, either as individuals or companies. Software users normally will need those with the required knowledge to handle any type of maintenance. It is adviceable to call on the software supplier or vendor should there be need for support or maintenance.

.