Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Software Engineering Tutorial
  • Software Development Life Cycle
  • Waterfall Model
  • Software Requirements
  • Software Measurement and Metrics
  • Software Design Process
  • System configuration management
  • Software Maintenance
  • Software Development Tutorial
  • Software Testing Tutorial
  • Product Management Tutorial
  • Project Management Tutorial
  • Agile Methodology
  • Selenium Basics
Open In App
Next Article:
Cost and efforts of software maintenance
Next article icon

Cost and efforts of software maintenance

Last Updated : 05 Jan, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

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.

Table of Content

  • Cost of software maintenance Include:
  • The cost and effort of software maintenance can be reduced by:
  • Categories of Software Maintenance: 
  • Software maintenance cost factors: 
  • Non-Technical factors: 
  • Technical factors: 

Cost of software maintenance Include:

  • Labor costs: This includes the cost of the personnel who perform the maintenance, such as software developers, engineers, and technicians.
    Hardware and software costs: This includes the cost of hardware and software tools used for maintenance, such as servers, software licenses, and development tools.
  • Training costs: This includes the cost of training personnel to perform maintenance tasks, such as software developers, engineers, and technicians.
    The effort of software maintenance can include:
  • Time and resources: This includes the time and resources required to perform the maintenance, such as the time required to identify and fix the problem, test the solution, and implement the solution.
  • Communication and coordination: This includes the effort required to communicate and coordinate with stakeholders, such as customers and other teams.
  • Testing and validation: This includes the effort required to test and validate the solution to ensure that it is working correctly and that it does not cause any new problems.

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

  • Adopting a proactive maintenance strategy that includes regular testing, monitoring, and updating of the system to prevent issues from occurring
    Automating repetitive and routine tasks
  • Using modern development methodologies such as Agile, DevOps and Continuous Integration and Continuous Deployment (CI/CD)
  • Using tools and technologies that can help to improve the efficiency of maintenance tasks, such as automated testing tools and configuration management tools
    Having a clear and well-defined maintenance plan that includes regular maintenance activities, such as testing, backup, and bug fixing.
  • It's important to note that software maintenance is an ongoing process, and the cost and effort of maintenance will vary over time as the system evolves and new requirements are added.

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: 

  • Customer dissatisfaction when requests for repair or modification cannot be addressed in a timely manner.
  • Reduction in overall software quality as a result of changes that introduce hidden errors in maintained software.

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. 

 


Next Article
Cost and efforts of software maintenance

A

anonymous007
Improve
Article Tags :
  • Software Engineering

Similar Reads

    Components of Software Maintenance Process
    Maintenance is the process in which changes are implemented either by modifying the existing system’s structure or by adding new components to the system. System requirements are changing fast and to meet this requirement some changes are incorporated and maintained in the system. The maintained sys
    2 min read
    Boehm’s Software Maintenance Model
    In 1983, Boehm proposed a model for the maintenance process which was based upon the economic models and principles. Economics model is nothing new thing, economic decisions are a major building block of many processes and Boehm’s thesis was that economics model and principles could not only improve
    3 min read
    Software Maintenance - Software Engineering
    Software Maintenance refers to the process of modifying and updating a software system after it has been delivered to the customer. This involves fixing bugs, adding new features, and adapting to new hardware or software environments. Effective maintenance is crucial for extending the software's lif
    14 min read
    Adaptive maintenance (AM)– Software Engineering
    Adaptive Maintenance (AM) refers to the ongoing process of updating software to ensure it continues to function in the response to the changes in its operating environment. This type of maintenance is become necessary when the external factors like hardware upgrades, changes in the operating systems
    10 min read
    Perfective Maintenance– Software Engineering
    Perfective maintenance refers to process of improving and enhancing software based on user feedback, performance analysis, or evolving market needs. It focuses on refining functionality, optimizing performance, and adding new features for ensuring that software remains relevant and efficient over ti
    4 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences