Home »
Software Engineering
Software Maintenance in Software Engineering
In this tutorial, we are going to study how software maintenance is done and why is it essential?
By Monika Sharma Last updated : April 07, 2023
Software Maintenance
Software maintenance is turning into a significant work for an enormous number of software developing organization. Maintenance is important. Additionally, at whatever point the help condition of a product item changes, the product item requires to revamp to adapt up to the more current interface. In this manner, each product item keeps on advancing after its advancement through Software Maintenance endeavors. Hence it very well may be expressed that product support is expected to address mistakes, improve highlights, port the product to new stages, and so forth.
Types of Software Maintenance
There are basically three types of software maintenance. These are,
1) Corrective
Corrective Maintenance of a product item is important to amend the bugs watched while the framework is being used.
2) Adaptive
A product item may require maintenance when the clients need the item to run on new platforms or on new working frameworks, or when they need the item to interface with new hardware or software.
3) Perfective
A software product needs maintenance to help the new highlights that clients need it to support, to change various functionalities of the framework as indicated by client requests, or to improve the presentation of the framework.
Factors That Affect Software Maintenance
The activities associated with a software maintenance project are not interesting and rely upon many factors, for example,
- The degree of change to the item required.
- The assets accessible to the maintenance team.
- The state of the current item (e.g., how organized it is, how all around recorded it is, and so forth?)
- The normal undertaking dangers, and so forth.
Software Maintenance Process Models
Two general classifications of process models for software maintenance can be proposed.
The primary model is favored for tasks including little revises where the code is changed straightforwardly and the progressions are reflected in the important reports later. This support procedure is graphically displayed.
The subsequent procedure model for software maintenance is favored for projects where the measure of revise required is significant. This methodology can be depicted by a reverse engineering cycle followed by a forward engineering cycle. Such a methodology is otherwise called software reengineering. This procedure model is portrayed.
The reverse engineering cycle is required for previous versions. During reverse engineering, the old code is examined (disconnected) to separate the module particulars. The module determinations are at that point dissected to create the plan. The plan is examined (disconnected) to create the first necessities determination. The change requests are then applied to this prerequisite particular to land at the new requirements specification.
Estimation of Approximate Maintenance Cost
It is well known that maintenance endeavors require about 60% of the absolute life cycle cost for a common software item. Be that as it may, maintenance expenses shift broadly from one application space to another. For inserted frameworks, the support cost can be as much as 2 to multiple times the advancement cost.
Boehm proposed an equation for assessing support costs as a component of his COCOMO cost estimation model. Boehm's upkeep cost estimation is made regarding an amount called the Annual Change Traffic (ACT).
Boehm characterized ACT as the division of a product item's source directions which experience change during a run of the mill year either through expansion or erasure.