Open In App

Cost and efforts of software maintenance

Software Maintenance is a very broad activity that takes place once the operation is done. It optimizes the software performance by reducing errors, eliminating useless lines of code, and applying advanced development. It can take up to 1–2 years to build a software system while its maintenance and modification can be an ongoing activity for 15–20 years. 

The cost and effort of software maintenance can vary depending on the type of maintenance being performed and the complexity of the software system. In general, software maintenance can be a significant cost for organizations, as it typically involves a combination of labor, hardware, and software costs.



Cost of software maintenance Include:

The cost and effort of software maintenance can be reduced by:

Categories of Software Maintenance: 

  1. Corrective Maintenance
  2. Adaptive Maintenance
  3. Perfective Maintenance
  4. Preventive Maintenance

The cost of system maintenance represents a large proportion of the budget of most organizations that use a software system. More than 65% of software lifecycle cost is expanded in the maintenance activities. 
Cost of software maintenance can be controlled by postponing the. development opportunity of software maintenance but this will cause the following intangible cost: 



Software maintenance cost factors: 

The key factors that distinguish development and maintenance and which lead to higher maintenance cost are divided into two subcategories Which are Non-Technical factors and Technical factors.

  1. Complexity of the software system: The more complex the software system, the more effort and resources will be required to maintain it.
  2. Size of the software system: The larger the software system, the more effort and resources will be required to maintain it.
  3. Number of users: The more users a software system has, the more effort and resources will be required to maintain it.
  4. Change rate of the software system: The more frequently the software system changes, the more effort and resources will be required to maintain it.
  5. Availability of personnel: The availability of personnel with the necessary skills and experience to maintain the software system can affect the cost of maintenance.
  6. Tools and technologies: The cost of maintenance can be affected by the tools and technologies used to maintain the software system, such as automated testing tools and configuration management tools.
  7. Maintenance plan: Having a clear and well-defined maintenance plan can help to reduce the cost of maintenance by allowing for more efficient use of resources.
  8. Age of the software system: Older systems may require more effort to maintain as the technology may be outdated.
  9. Type of maintenance: The type of maintenance being performed can also affect the cost, for example, corrective maintenance is typically less expensive than perfective maintenance.
  10. Location: The cost of maintenance can be affected by the location of the system and the cost of labor in that area.

Non-Technical factors: 

The Non-Technical factors include:  

  1. Application Domain
  2. Staff stability
  3. Program lifetime
  4. Dependence on External Environment
  5. Hardware stability

Technical factors: 

Technical factors include the following:  

  1. module independence
  2. Programming language
  3. Programming style
  4. Program validation and testing
  5. Documentation
  6. Configuration management techniques

Efforts expanded on maintenance may be divided into productivity activities (for example analysis and evaluation, design and modification, coding). The following expression provides a module of maintenance efforts:  

M = P + Ke(C - D)

where, 
M: Total effort expanded on the maintenance. 
P: Productive effort. 
K: An empirical constant. 
C: A measure of complexity that can be attributed to a lack of good design and documentation. 
D: A measure of the degree of familiarity with the software. 

 

Article Tags :