ADITYA INSTITUTE OF MANAGEMENT STUDIES
SOFTWARE MAINTENANCE
Presented by:
Presented to: B Abhishek
Devi Rao Vasanth
Kumar S
Mam
MEANING
Software maintenance is the
process of modifying and
updating software after
delivery to fix bugs, improve
performance, or adapt to new
environments. It ensures the
software remains reliable and
meets user needs over time.
KEY POINTS
Software maintenance is a continuous process throughout the software
life cycle.
Maintenance types include reactive (fixing problems) and proactive
(preventing problems).
Maintenance can be done by the original team, in-house staff, or third-
party providers.
It includes planned tasks (like updates) and unplanned ones (like fixing
crashes).
It keeps the software and its documentation up to date.
Upgrades help maintain compatibility with other systems.
Maintenance ensures software meets user needs.Success depends on
good communication with stakeholders.
It can be costly and time-consuming, especially for large
systems.Regular updates and clear planning help manage the process.
NEED FOR SOFTWARE MAINTENANCE
Fix Defects : Correct errors after deployment.
Adapt to Changes : Address evolving business and tech needs.
Enhance Features : Add user-requested improvements.
Optimize Performance : Maintain speed and efficiency.
Security : Patch vulnerabilities and apply updates.
Support Upgrades : Ensure compatibility with new platforms.
Regulatory Compliance : Update for legal and industry standards.
Usability : Improve user experience.
Dependency Updates : Replace outdated external components.
Data Migration : Ensure data format compatibility.
CATEGORIES
Corrective : Fix bugs and issues.
Adaptive : Adjust to environment changes.
Perfective : Improve performance and features.
Preventive : Avoid future issues through proactive
steps
MAINTAINABILITY
Maintainability is the ease with which
software can be understood, modified,
and updated over time. It minimizes
costs and risks during software
evolution.
PRINCIPLES AND PRACTICES TO
DEVELOP MAINTAINABLE SOFTWARE
Modularity : Independent components.
Design Patterns : Reusable design solutions.
Coding Standards : Clear and consistent code.
Quality Assurance : Early bug detection through
testing.
Documentation : Comprehensive, up-to-date
information.
CHALLENGES IN SOFTWARE
MAINTENANCE
Poor documentation
Legacy systems
System complexity
Evolving requirements
Integration issues
Inadequate testing
Skill shortages
High cost
THANK
YOU!