Software maintenance is the modification of a software product after delivery to correct faults, improve performance, adapt it to a changed environment or enhance its quality.
Need for Maintenance
Correct defects found after deployment.
Adapt software to new operating systems, devices or laws.
Add or modify features.
Improve performance, security and usability.
Reduce future maintenance cost.
Keep business-critical software operational.
Change Request
|
v
Impact Analysis
|
v
Change Approval
|
v
Design and Implementation
|
v
Testing and Regression
|
v
Release and Documentation
Maintenance Characteristics
Performed after initial delivery.
Requires understanding of existing software.
Must preserve unaffected behavior.
Needs configuration and change control.
Includes testing and documentation updates.
2. Types of Software Maintenance 14 Marks
Type
Purpose
Example
Corrective
Correct discovered faults
Fixing an incorrect tax calculation
Adaptive
Adapt to environment changes
Supporting a new operating system
Perfective
Improve features, usability or performance
Adding a new report or faster search
Preventive
Reduce future failures and maintenance effort
Refactoring complex legacy code
Corrective Maintenance
Reactive modification performed to remove defects reported by users or operations.
Adaptive Maintenance
Modification required because of changes in hardware, software platforms, interfaces, regulations or business environment.
Perfective Maintenance
Enhancement of functionality, performance, maintainability or user experience.
Preventive Maintenance
Proactive improvement that removes weaknesses before they cause operational failure.
3. Software Maintenance Process 14 Marks
Receive and record the modification request.
Classify and prioritize the request.
Perform program comprehension and impact analysis.
Estimate cost, effort and risk.
Approve or reject the change.
Modify requirements, design and code.
Perform unit, integration and regression testing.
Update documentation and configuration records.
Release the changed software.
Review the result and close the request.
Impact Analysis
Impact analysis identifies the software components, documents, interfaces, tests, cost, schedule and risks affected by a proposed change.
Maintenance Metrics
Mean Time to Change = Total Time Spent on Changes / Number of Completed Changes
Change Request Backlog = Open Change Requests at a Given Time
Software supportability is the ability of software to be maintained, diagnosed, configured, repaired and operated effectively throughout its useful life.
Supportability Factors
Maintainability
Testability
Diagnosability
Configurability
Installability
Documentation quality
Monitoring and logging
Availability of skilled support staff
Improvement Methods
Use modular architecture.
Provide logs and health checks.
Maintain accurate documentation.
Automate installation and deployment.
Use configuration files rather than hard-coded values.
Provide diagnostic and recovery tools.
5. Software Maintenance Problems 7 Marks
Poor or outdated documentation
Complex and unstructured code
Loss of original developers
Hidden dependencies
Obsolete technology
Insufficient test cases
Frequent emergency changes
Weak configuration control
Difficulty understanding business rules
High risk of introducing new defects
Maintenance cost can be reduced through good architecture, coding standards, documentation, automated tests, version control and disciplined change management.
6. Software Configuration Management 14 Marks
Software Configuration Management is the discipline of identifying, organizing, controlling and auditing changes to software configuration items throughout the software life cycle.
Configuration Item
A configuration item is any controlled software artifact, such as source code, SRS, design document, test case, database script, build file or user manual.
Objectives of SCM
Control changes systematically.
Maintain product integrity.
Identify valid versions and baselines.
Support parallel development.
Provide traceability and audit history.
Ensure reproducible builds and releases.
Configuration Identification
|
v
Version Control
|
v
Change Control
|
v
Status Accounting
|
v
Configuration Audit
|
v
Build and Release Management
7. SCM Activities and Plan 14 Marks
Major SCM Activities
Configuration identification: Select and name configuration items.
Version control: Manage different revisions and variants.
Change control: Evaluate and authorize changes.
Status accounting: Record and report configuration status.
Configuration audit: Verify correctness and completeness.
Release management: Package and deliver approved versions.
SCM Plan Contents
SCM scope and objectives
Roles and responsibilities
Configuration-item naming rules
Repository and branching strategy
Change-control procedure
Build and release procedure
Audit and reporting method
Backup and recovery rules
Tools and access control
8. Software Change Management 14 Marks
Software change management is the controlled process of requesting, evaluating, approving, implementing and verifying software changes.
Change Request
|
v
Log and Classify
|
v
Impact and Risk Analysis
|
v
Change Control Board
/ \
Reject Approve
|
v
Implement and Test
|
v
Update Baseline
Change Control Board
The Change Control Board evaluates the business value, technical impact, risk, cost and priority of proposed changes.
Change Request Contents
Request ID and description
Reason and business value
Affected components
Priority and severity
Cost, effort and schedule estimate
Risk and test impact
Approval status
9. Version Control and Reporting 14 Marks
Version control records changes to software artifacts and allows teams to retrieve, compare, merge and restore revisions.
Important Concepts
Repository: Controlled storage for project files and history.
Commit: Recorded set of changes.
Branch: Independent line of development.
Merge: Combining changes from branches.
Tag: Permanent name for an important version.
Baseline: Formally approved version used as a reference.
Benefits
Supports collaboration.
Preserves complete change history.
Allows rollback.
Supports parallel feature and maintenance work.
Improves accountability and release control.
Configuration Status Reporting
Reports identify current versions, approved changes, open requests, completed builds, audit results and release contents.
10. Program Comprehension Techniques 7 Marks
Program comprehension is the process of understanding the structure, behavior, purpose and dependencies of existing software.
Techniques
Reading code and documentation
Static dependency analysis
Control-flow and data-flow analysis
Dynamic tracing and logging
Program slicing
Call-graph analysis
Architecture recovery
Repository history analysis
Domain-expert interviews
Outputs
Recovered design
Dependency map
Business-rule documentation
Impact-analysis report
Candidate modules for restructuring
11. Software Reengineering 14 Marks
Software reengineering examines and modifies an existing system to reconstruct it in an improved form while preserving its essential functionality.
Legacy System
|
v
Inventory Analysis
|
v
Document Restructuring
|
v
Reverse Engineering
|
v
Code and Data Restructuring
|
v
Forward Engineering
|
v
Improved System
Objectives
Improve maintainability.
Reduce technical debt.
Migrate obsolete technology.
Recover missing documentation.
Improve structure and data quality.
Extend the useful life of the system.
Advantages
Lower risk than complete redevelopment.
Preserves tested business rules.
Reduces maintenance cost.
Improves reliability and portability.
12. Reverse Engineering 14 Marks
Reverse engineering analyzes an existing software system to recover its components, relationships, design, architecture and requirements.
Source Code
|
v
Program Structure
|
v
Design Model
|
v
Architecture
|
v
Business Understanding
Uses
Understand undocumented legacy systems.
Recover design and architecture.
Support maintenance and migration.
Identify reusable components.
Assist security and dependency analysis.
Reverse Engineering vs Reengineering
Reverse engineering mainly recovers understanding, while reengineering also transforms and improves the software.
13. Software Restructuring 14 Marks
Software restructuring transforms code, data or documentation into a better organized form without changing external behavior.
Types
Code restructuring: Simplifies control flow, removes dead code and improves modularity.
Data restructuring: Improves files, schemas, data names and relationships.
Document restructuring: Updates or recreates technical documentation.
Benefits
Improves readability.
Reduces complexity.
Supports testing and change.
Removes duplication and obsolete structures.
Prepares software for migration.
Restructuring should preserve observable functionality. Regression testing is essential after every structural change.
14. Forward Engineering 7 Marks
Forward engineering constructs an improved software system from recovered or newly created requirements and design models.
Recovered Requirements
|
v
Improved Architecture
|
v
Detailed Design
|
v
Modern Implementation
|
v
Testing and Deployment
Activities
Redesign architecture
Modernize user interface
Migrate data
Rewrite or regenerate code
Integrate modern services
Test and deploy the improved system
15. Economics of Reengineering 14 Marks
Organizations choose among continued maintenance, reengineering and complete redevelopment.
Reengineering Benefit = Expected Future Cost Without Reengineering − Expected Future Cost After Reengineering
Software project management applies knowledge, skills, tools and techniques to deliver software within agreed scope, time, cost and quality constraints.
Major Management Areas
Scope management
Time and schedule management
Cost management
Quality management
Resource management
Risk management
Communication management
Configuration and change management
Scope
/ \
Time Cost
\ /
Quality
Project Manager Responsibilities
Prepare and maintain the plan.
Allocate resources.
Monitor schedule, cost and quality.
Manage risks and changes.
Communicate with stakeholders.
Resolve issues and coordinate the team.
17. Project and Process Planning 14 Marks
Project Plan Contents
Project objectives and scope
Deliverables and acceptance criteria
Work Breakdown Structure
Effort, schedule and cost estimates
Resource allocation
Risk management plan
Quality assurance plan
Configuration management plan
Communication and reporting plan
Monitoring and control method
Resource Allocation
Resource allocation assigns people, tools, infrastructure and budget to project activities according to skill, availability, priority and dependency.
Process Planning
Process planning selects the life-cycle model, methods, standards, reviews, testing activities and deliverables to be used by the project.
18. Project Scheduling and Tracking 14 Marks
Scheduling Steps
Identify activities.
Estimate duration and effort.
Identify dependencies.
Allocate resources.
Define milestones.
Prepare Gantt, PERT or CPM schedule.
Identify the critical path.
Establish a baseline.
Tracking Activities
Compare planned and actual effort.
Review milestone completion.
Track defects, cost and changes.
Update risks.
Analyze variance.
Take corrective or preventive action.
Schedule Variance = Earned Value − Planned Value
Cost Variance = Earned Value − Actual Cost
19. Risk Assessment and Mitigation 14 Marks
A software risk is an uncertain event that may negatively affect project scope, cost, schedule, quality or business value.
Types of Risks
Project risks
Technical risks
Business risks
Operational risks
Security and legal risks
Risk Management Process
Risk Identification
|
v
Risk Analysis
|
v
Risk Prioritization
|
v
Mitigation Planning
|
v
Monitoring and Control
Risk Exposure = Probability of Risk × Impact of Risk
Risk Response Strategies
Avoid: Remove the cause or change the plan.
Mitigate: Reduce probability or impact.
Transfer: Shift responsibility to another party.
Accept: Monitor and prepare contingency action.
20. Software Quality Assurance 14 Marks
Software Quality Assurance is a planned and systematic set of activities that provides confidence that software processes and products conform to requirements, standards and procedures.
SQA Activities
Prepare the quality assurance plan.
Define standards and procedures.
Review requirements, design, code and tests.
Conduct process and product audits.
Monitor defects and quality metrics.
Ensure corrective actions are completed.
Support configuration management.
Report quality status to management.
Quality Assurance vs Quality Control
Basis
Quality Assurance
Quality Control
Focus
Process
Product
Purpose
Prevent defects
Detect defects
Activities
Standards, audits, process improvement
Testing and inspection
Nature
Proactive
Reactive
21. Software Quality Planning 7 Marks
Quality Plan Contents
Quality objectives
Applicable standards
Review and audit schedule
Testing strategy
Quality metrics and targets
Roles and responsibilities
Defect reporting and corrective action
Tools and records
Entry and exit criteria
Common Quality Metrics
Defect Density = Number of Defects / Software Size
Defect Removal Efficiency = Defects Removed Before Release / Total Defects × 100
Standards provide common terminology, processes, documentation and quality expectations for software projects.
Important Examples
ISO 9001: Quality-management system requirements.
ISO/IEC 12207: Software life-cycle processes.
ISO/IEC 25010: Software product quality model.
IEEE standards: Guidance for software plans, requirements, reviews and testing.
CMMI: Process capability and improvement framework.
Benefits
Consistent project execution
Improved documentation
Better quality and auditability
Reduced process variation
Clear roles and responsibilities
24. Component-Based Software Engineering 14 Marks
Component-Based Software Engineering develops systems by selecting, adapting and integrating reusable software components with well-defined interfaces.
Component Characteristics
Independent and deployable
Reusable
Encapsulated implementation
Clearly specified interfaces
Replaceable
Composable
CBSE Process
Requirement Analysis
|
v
Component Search
|
v
Component Evaluation
|
v
Adaptation / Wrapping
|
v
Integration
|
v
System Testing
Advantages
Reduces development time and cost.
Uses previously tested components.
Improves reuse and productivity.
Supports rapid delivery.
Allows component replacement.
Limitations
Component mismatch
Limited control over source code
Compatibility and integration problems
Dependency on vendor support
Security and licensing concerns
Unit 5 Quick Revision
Software maintenance modifies software after delivery.
Maintenance is corrective, adaptive, perfective or preventive.
Supportability means software can be diagnosed, repaired and operated effectively.
SCM identifies and controls configuration items and versions.
A baseline is a formally approved reference version.
Change management controls the complete life cycle of a change request.
Restructuring improves internal form without changing behavior.
Forward engineering builds an improved system from requirements and design.
Risk exposure equals probability multiplied by impact.
SQA prevents defects by improving processes.
Quality control detects defects in products.
CMM contains five maturity levels.
CBSE builds systems from reusable components.
Important RGPV Exam Questions
Long Answer Questions
Define software maintenance and explain its need and process.
Explain corrective, adaptive, perfective and preventive maintenance.
What is software supportability? Explain its important factors.
Explain software configuration management and its objectives.
Explain major SCM activities and the contents of an SCM plan.
Explain the software change-management process.
Define version control, baseline, branch, merge and tag.
Explain program-comprehension techniques.
Define software reengineering and explain its process.
Differentiate reengineering and reverse engineering.
Explain code, data and document restructuring.
Explain forward engineering with a diagram.
Discuss the economics of software reengineering.
Explain software project-management concepts.
Explain project planning and resource allocation.
Explain project scheduling and tracking.
Define software risk and explain risk assessment and mitigation.
Define SQA and explain its activities.
Differentiate quality assurance and quality control.
Explain the five levels of CMM.
Write a note on software project-management standards.
Explain component-based software engineering with advantages and limitations.
Short Answer Questions
Define corrective maintenance.
What is adaptive maintenance?
Define software supportability.
What is a configuration item?
Define baseline.
What is a Change Control Board?
Define version control.
What is program comprehension?
Define reverse engineering.
What is software restructuring?
Define forward engineering.
What is risk exposure?
Define SQA.
Name the five CMM levels.
Define CBSE.
Exam Tip: Maintenance types, SCM activities, reengineering, risk management, SQA and CMM are major long-answer topics. Include process diagrams and comparison tables.
Download Study Resources
Unit 5 PDF
Printable Unit 5 notes will be available soon.
Coming Soon
Important Diagrams
SCM, reengineering, risk and CMM diagrams will be available soon.
Coming Soon
Important Questions
Expected Unit 5 questions will be available soon.
Coming Soon
Frequently Asked Questions
Corrective, adaptive, perfective and preventive maintenance.
SCM systematically identifies and controls software versions, configuration items, changes, builds and releases.
A baseline is a formally reviewed and approved version of one or more configuration items that serves as a reference for future development.
Reverse engineering recovers understanding from existing software, while reengineering also modifies and improves the system.
Risk Exposure = Probability of the risk × Impact of the risk.
No. SQA is process-oriented and prevents defects, while testing is a product-control activity used to detect defects.
CMM has five levels: Initial, Repeatable, Defined, Managed and Optimizing.