IT 604(B) • Unit V

Software Maintenance, SCM and Quality Assurance

Complete RGPV exam-oriented notes on maintenance types, software supportability, configuration and change management, reengineering, project planning, resource allocation, risk management, SQA, CMM, software standards and component-based software engineering.

Start Unit 5 Notes

1. Software Maintenance 14 Marks

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

TypePurposeExample
CorrectiveCorrect discovered faultsFixing an incorrect tax calculation
AdaptiveAdapt to environment changesSupporting a new operating system
PerfectiveImprove features, usability or performanceAdding a new report or faster search
PreventiveReduce future failures and maintenance effortRefactoring 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

  1. Receive and record the modification request.
  2. Classify and prioritize the request.
  3. Perform program comprehension and impact analysis.
  4. Estimate cost, effort and risk.
  5. Approve or reject the change.
  6. Modify requirements, design and code.
  7. Perform unit, integration and regression testing.
  8. Update documentation and configuration records.
  9. Release the changed software.
  10. 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
Rework Percentage = Rework Effort / Total Maintenance Effort × 100

4. Software Supportability 7 Marks

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.
  • Build management: Create reproducible software builds.
  • 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
Return on Investment = (Benefit − Reengineering Cost) / Reengineering Cost × 100

Cost Factors

  • System size and complexity
  • Documentation quality
  • Technology obsolescence
  • Data migration difficulty
  • Test coverage
  • Business criticality
  • Availability of skilled personnel
  • Expected remaining system life

When Reengineering is Suitable

  • Business value is high.
  • Existing system is operationally reliable.
  • Maintenance cost is increasing.
  • Technology is obsolete.
  • Full redevelopment is too risky or expensive.

16. Software Project Management Concepts 14 Marks

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

  1. Identify activities.
  2. Estimate duration and effort.
  3. Identify dependencies.
  4. Allocate resources.
  5. Define milestones.
  6. Prepare Gantt, PERT or CPM schedule.
  7. Identify the critical path.
  8. 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

BasisQuality AssuranceQuality Control
FocusProcessProduct
PurposePrevent defectsDetect defects
ActivitiesStandards, audits, process improvementTesting and inspection
NatureProactiveReactive

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
Test Pass Rate = Passed Tests / Executed Tests × 100

22. Capability Maturity Model 14 Marks

CMM is a process-improvement framework that describes progressive levels of software-process maturity.
LevelNameMain Characteristic
1InitialProcess is unpredictable and person dependent
2RepeatableBasic project-management practices are established
3DefinedOrganization-wide standard processes are documented
4ManagedProcesses and quality are quantitatively controlled
5OptimizingContinuous process improvement is institutionalized
Level 5 Optimizing ▲ Level 4 Managed ▲ Level 3 Defined ▲ Level 2 Repeatable ▲ Level 1 Initial

Benefits

  • Improves predictability.
  • Reduces defects and rework.
  • Promotes standard processes.
  • Supports quantitative management.
  • Encourages continuous improvement.

23. Software Project Management Standards 7 Marks

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.
  • Reverse engineering recovers higher-level knowledge.
  • Reengineering improves an existing system.
  • 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

  1. Define software maintenance and explain its need and process.
  2. Explain corrective, adaptive, perfective and preventive maintenance.
  3. What is software supportability? Explain its important factors.
  4. Explain software configuration management and its objectives.
  5. Explain major SCM activities and the contents of an SCM plan.
  6. Explain the software change-management process.
  7. Define version control, baseline, branch, merge and tag.
  8. Explain program-comprehension techniques.
  9. Define software reengineering and explain its process.
  10. Differentiate reengineering and reverse engineering.
  11. Explain code, data and document restructuring.
  12. Explain forward engineering with a diagram.
  13. Discuss the economics of software reengineering.
  14. Explain software project-management concepts.
  15. Explain project planning and resource allocation.
  16. Explain project scheduling and tracking.
  17. Define software risk and explain risk assessment and mitigation.
  18. Define SQA and explain its activities.
  19. Differentiate quality assurance and quality control.
  20. Explain the five levels of CMM.
  21. Write a note on software project-management standards.
  22. Explain component-based software engineering with advantages and limitations.

Short Answer Questions

  1. Define corrective maintenance.
  2. What is adaptive maintenance?
  3. Define software supportability.
  4. What is a configuration item?
  5. Define baseline.
  6. What is a Change Control Board?
  7. Define version control.
  8. What is program comprehension?
  9. Define reverse engineering.
  10. What is software restructuring?
  11. Define forward engineering.
  12. What is risk exposure?
  13. Define SQA.
  14. Name the five CMM levels.
  15. 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.