How unit 3 is examined
Covers maintenance types and cost, SCM, re-engineering, and project management (feasibility, scheduling, risk, SQA, metrics). Marks sit in maintenance, SCM and risk; the rest are single 7-mark questions.
Need and Types of Maintenance
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>
Definition. <mark>Software maintenance is the modification of a software product after delivery to correct faults, improve performance or adapt it to a changed environment.</mark>
Key points.
- Maintenance is needed because errors surface only in real use, business rules and laws change, and hardware or operating systems are upgraded.
- Corrective maintenance fixes faults found after release, for example repairing a crash when a payment amount is zero.
- Adaptive maintenance changes the software for a new environment, for example porting an app to a new OS version or database.
- Perfective maintenance adds features or improves performance on user request, for example adding a report export or a faster search.
- Preventive maintenance restructures code to avoid future problems, for example refactoring modules or updating documentation.
- Maintenance usually consumes 60-70% of total life-cycle cost, and perfective work is the largest share.
- Cost estimation is inaccurate because of factors such as system size, age, program structure, staff skill and turnover, hardware stability, and poor documentation.
Formula. Annual maintenance cost = development cost $\times$ fraction of code modified per year.
Example. Given: cost = Rs. 10,000,000; modification = 5% per year.
$$\text{AMC} = 10{,}000{,}000 \times \frac{5}{100} = 500{,}000$$
Annual maintenance cost = Rs. 5,00,000 per year.
Answer frame. Numerical: write the formula, substitute, box Rs. 500,000, then list the inaccuracy factors (point 7). Types: define maintenance; describe the four types in order corrective, adaptive, perfective, preventive, each with one example; close with the 60-70% cost remark.
Pitfall: Do not call new-feature work "corrective"; features are perfective.
Asked: [7 marks] (Jun 2023) Software product costs Rs. 10,000,000 to develop; compute annual maintenance cost if 5% of code needs modification each year. Identify factors that make maintenance cost estimation inaccurate. Asked: [7 marks] (Jun 2025) What are the types of software maintenance? Give suitable examples.
Software Configuration Management (SCM)
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>
Definition. <mark>Software configuration management is the discipline of identifying, organising and controlling changes to the software and its work products throughout the life cycle.</mark>
Key points.
- The main aim of SCM is to control change and maintain the integrity and traceability of every configuration item, so that nobody's change silently breaks another's work.
- A configuration item (SCI) is any work product placed under control, such as source code, design documents, test cases and the SRS.
- Configuration identification names each item and fixes baselines, which are approved reference versions that change only through formal control.
- Version control keeps every version of each item and lets the team retrieve, compare and merge them.
- Change control evaluates each change request, approves or rejects it, implements it and records it.
- Configuration audit checks that the approved change was made correctly and that the item matches its baseline.
- Status accounting (reporting) records what changed, who changed it and when.
- The basic requirement is therefore identification, version control, change control, audit and status reporting; tools such as Git, SVN and CVS support it.
Answer frame. Open with the definition; state the aim (point 1); list the five components (points 3-7) as a small numbered list; name a tool; close that SCM keeps a stable, traceable product while it changes.
Asked: [7 marks] (Jun 2023, Jun 2025) What is the main aim of Software configuration management? What is the basic requirement of SCM? Explain SCM and its components.
Software Change Management
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Change management is the process of receiving, evaluating, approving and implementing changes to software in a controlled way.
Key points.
- A change request is raised by a user or developer and logged.
- A change control board (CCB) reviews its impact on cost, schedule and quality.
- Approved changes are implemented, tested and released; rejected ones are recorded with reasons.
- This prevents uncontrolled changes (scope creep).
Version Control
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Version control is the management of successive versions of files so that any earlier version can be recovered and changes are tracked.
Key points.
- A repository stores all versions with author, date and message for each commit.
- Branching allows parallel work on features, and merging combines the branches.
- Centralised systems (SVN, CVS) use one server; distributed systems (Git) give each developer a full copy.
- Check-out and check-in (or lock and merge) prevent conflicting overwrites.
Change control and Reporting
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Change control is the formal procedure of submitting, assessing, approving and tracking a change request, with reports on its status.
Key points.
- Steps: request, impact analysis, CCB decision, implementation, verification, release.
- Bug and change reports record the problem, severity, owner and status (open, fixed, closed).
- Status reports give management the count of open and closed requests.
- Emergency changes are allowed but must be documented afterwards.
Program Comprehension Techniques
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Program comprehension is the process of understanding existing code so that it can be maintained safely.
Key points.
- Top-down comprehension starts from the purpose of the program and refines it into hypotheses about the code.
- Bottom-up comprehension reads the code statements and groups them into higher-level concepts.
- Aids include reading documentation, tracing execution, static analysis, cross-reference and call-graph tools.
- Comprehension takes up to half of maintenance effort, so good naming and comments cut cost.
Re-engineering
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Low weight</span>
Definition. <mark>Re-engineering is the examination and alteration of an existing system to reconstitute it in a new, better form and then implement that form.</mark>
Key points.
- Process: inventory analysis, document restructuring, reverse engineering, code restructuring, data restructuring, forward engineering.
- Its purpose is to improve maintainability of a legacy system without changing its function.
- Example: a COBOL banking system is analysed, its design recovered, and it is rebuilt in Java with a database.
- Difference: re-engineering is the whole rebuild (reverse, then forward); reverse engineering is only the analysis half that recovers design from code.
Asked: [7 marks] (Jun 2024) Explain the Re Engineering and Reverse Engineering with a suitable example.
Reverse Engineering
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Reverse engineering is analysing a finished system to recover its design, specification or requirements from code.
Key points.
- It moves backward from code to design to requirements, raising the level of abstraction.
- Outputs include structure charts, data-flow diagrams and data dictionaries.
- It is used when documentation is lost or before re-engineering a legacy system.
- It does not change the system; it only extracts information.
Tool Support
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. CASE tools are software tools that automate maintenance and re-engineering activities.
Key points.
- Reverse-engineering tools extract design and call graphs from code.
- Restructuring tools and code analysers clean up structure and detect defects.
- Configuration tools such as Git manage versions and changes.
- Tools reduce effort and errors but need trained users.
Project Management Concepts
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Project management is planning, organising, monitoring and controlling people, process and product to deliver software on time and within budget.
Key points.
- The four Ps are People, Product, Process and Project.
- The project manager handles planning, staffing, risk, tracking and communication.
- Constraints are scope, time, cost and quality.
- Good management prevents overruns and failed delivery.
Feasibility Analysis
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Low weight</span>
Definition. <mark>Feasibility analysis is a study made before development to decide whether the proposed project is technically, economically and operationally worth undertaking.</mark>
Key points.
- Types: technical (is the technology available), economic (cost-benefit), operational (will users accept it), legal (licences and laws) and schedule (can it finish in time).
- Steps: define the project, gather information, analyse each feasibility type, compare alternatives, prepare the report.
- The outcome is a feasibility report recommending go, no-go or modify.
Asked: [7 marks] (Jun 2025) Describe the process of feasibility analysis in project management.
Project and Process Planning
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Project planning defines the work, sequence, resources and process model before development starts.
Key points.
- A work breakdown structure (WBS) divides the project into tasks.
- The process model (waterfall, agile) is chosen to suit the project.
- Planning sets milestones, deliverables and quality checks.
- The plan is refined as the project progresses.
Resources Allocations
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Resource allocation assigns people, tools, hardware and budget to project tasks.
Key points.
- Human resources are matched to tasks by skill and availability.
- Overloaded or idle resources are balanced using resource levelling.
- Adding people to a late project can make it later (Brooks' law).
- Software, hardware and reusable components are also planned resources.
Software efforts, Schedule, and Cost estimations
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Estimation predicts the effort (person-months), duration and cost of a project.
Key points.
- Techniques: expert judgement, analogy, function points, and COCOMO.
- Basic COCOMO: $E = a(KLOC)^b$ person-months and $D = c(E)^d$ months.
- For the organic mode, $a=2.4,\ b=1.05,\ c=2.5,\ d=0.38$.
- Cost is effort multiplied by the cost per person-month.
Project Scheduling and Tracking
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Low weight</span>
Definition. <mark>Scheduling assigns start and end dates to tasks; tracking compares actual progress with the plan and corrects deviations.</mark>
Key points.
- WBS breaks the work into tasks; a Gantt chart shows tasks as bars against time.
- PERT/CPM draws a network of tasks; the critical path is the longest path and fixes the minimum project duration.
- Earned value compares planned value, earned value and actual cost to judge schedule and cost status.
- Tracking uses milestone reviews, status meetings and progress reports; for example, a 10-task project slipping on the critical path delays the release.
Asked: [7 marks] (Jun 2025) Explain project scheduling and tracking techniques used in software projects.
Risk Assessment and Mitigation
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>
Definition. <mark>A software risk is an uncertain event that, if it occurs, harms cost, schedule or quality; risk management is identifying, analysing and controlling such risks.</mark>
Diagram.
<figure class="ds-fig" style="margin:1.4rem 0;overflow-x:auto"><svg xmlns="http://www.w3.org/2000/svg" id="dsfig-u3-01" viewBox="0 0 596 80" width="596" height="80" role="img" aria-label="Risk management. I identification, A analysis, P prioritisation, L planning (mitigation), M monitoring."><style>#dsfig-u3-01 .e{stroke:#454C5A;stroke-width:1.4;fill:none}#dsfig-u3-01 .e.hi{stroke:#2340B8;stroke-width:2.6}#dsfig-u3-01 .n{fill:#FFFFFF;stroke:#16181D;stroke-width:1.4}#dsfig-u3-01 .n.hi{fill:#E3E9FC;stroke:#2340B8;stroke-width:2.2}#dsfig-u3-01 .n.rb-b{fill:#16181D;stroke:#16181D}#dsfig-u3-01 .n.rb-r{fill:#BD3227;stroke:#BD3227}#dsfig-u3-01 text{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px}#dsfig-u3-01 .t{fill:#16181D;font-weight:500}#dsfig-u3-01 .t.inv{fill:#FFFFFF;font-weight:700}#dsfig-u3-01 .kd{stroke:#16181D;stroke-width:1.2}#dsfig-u3-01 .dot{fill:#16181D}#dsfig-u3-01 .ann{fill:#2340B8;font-size:11px;font-weight:700}#dsfig-u3-01 .lbl{fill:#6F7787;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}#dsfig-u3-01 .ptr{fill:#2340B8;font-size:12px;font-weight:700}#dsfig-u3-01 .ah{fill:#454C5A}#dsfig-u3-01 .ah.hi{fill:#2340B8}#dsfig-u3-01 .wl rect{fill:#FFFFFF;stroke:#DCE0E7}#dsfig-u3-01 .wl .t{font-size:12px;font-weight:700}#dsfig-u3-01 .wl.hi rect{fill:#2340B8;stroke:#2340B8}#dsfig-u3-01 .wl.hi .t{fill:#FFFFFF}html.dark #dsfig-u3-01 .e{stroke:#B1B7C3}html.dark #dsfig-u3-01 .e.hi{stroke:#8FA3FF}html.dark #dsfig-u3-01 .n{fill:#161920;stroke:#E6E8ED}html.dark #dsfig-u3-01 .n.hi{fill:#1E2748;stroke:#8FA3FF}html.dark #dsfig-u3-01 .n.rb-b{fill:#E6E8ED;stroke:#E6E8ED}html.dark #dsfig-u3-01 .n.rb-r{fill:#FF7E71;stroke:#FF7E71}html.dark #dsfig-u3-01 .t{fill:#E6E8ED}html.dark #dsfig-u3-01 .t.inv{fill:#0F1115}html.dark #dsfig-u3-01 .kd{stroke:#E6E8ED}html.dark #dsfig-u3-01 .dot{fill:#E6E8ED}html.dark #dsfig-u3-01 .ann{fill:#8FA3FF}html.dark #dsfig-u3-01 .lbl{fill:#858D9C}html.dark #dsfig-u3-01 .ptr{fill:#8FA3FF}html.dark #dsfig-u3-01 .ah{fill:#B1B7C3}html.dark #dsfig-u3-01 .ah.hi{fill:#8FA3FF}html.dark #dsfig-u3-01 .wl rect{fill:#161920;stroke:#2A2E37}html.dark #dsfig-u3-01 .wl.hi rect{fill:#8FA3FF;stroke:#8FA3FF}html.dark #dsfig-u3-01 .wl.hi .t{fill:#0F1115}</style><defs><marker id="ah9" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah" d="M0,1 L9,5 L0,9 z"/></marker><marker id="ahh9" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah hi" d="M0,1 L9,5 L0,9 z"/></marker></defs><path class="e" d="M59,40 L148,40" marker-end="url(#ah9)"/><path class="e" d="M188,40 L277,40" marker-end="url(#ah9)"/><path class="e" d="M317,40 L406,40" marker-end="url(#ah9)"/><path class="e" d="M446,40 L535,40" marker-end="url(#ah9)"/><circle class="n" cx="40" cy="40" r="18"/><text class="t" x="40" y="40" dy=".35em" text-anchor="middle">I</text><circle class="n" cx="169" cy="40" r="18"/><text class="t" x="169" y="40" dy=".35em" text-anchor="middle">A</text><circle class="n" cx="298" cy="40" r="18"/><text class="t" x="298" y="40" dy=".35em" text-anchor="middle">P</text><circle class="n" cx="427" cy="40" r="18"/><text class="t" x="427" y="40" dy=".35em" text-anchor="middle">L</text><circle class="n" cx="556" cy="40" r="18"/><text class="t" x="556" y="40" dy=".35em" text-anchor="middle">M</text></svg><figcaption style="font-size:.82em;opacity:.72;margin-top:.45rem">Risk management. I identification, A analysis, P prioritisation, L planning (mitigation), M monitoring.</figcaption></figure>
Key points.
- Risk types are project risks (schedule, staff, budget), technical risks (design, technology) and business risks (market, funding).
- Risk identification lists risks using checklists and brainstorming, for example staff leaving or changing requirements.
- Risk analysis (assessment) estimates the probability and the impact of each risk.
- Prioritisation ranks risks by exposure $= \text{probability} \times \text{impact}$ so the top ones get attention first.
- Risk avoidance changes the plan so the risk cannot occur; risk transfer shifts it, for example by insurance or outsourcing.
- Risk mitigation reduces probability or impact, for example cross-training staff against turnover.
- Monitoring tracks the risks throughout the project, and a contingency plan is activated if one occurs.
Answer frame. Open with the definition and types; draw the flow diagram; develop identification, analysis, prioritisation, planning and monitoring with one software example each; close that early mitigation is cheaper than recovery.
Asked: [7 marks] (Jun 2023, Jun 2024) Explain software risk analysis and management process. Explain in detail risk assessment and risk mitigation.
Software Quality Assurance (SQA)
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Low weight</span>
Definition. <mark>SQA is a set of planned activities that monitor the software process to ensure the product meets its quality standards.</mark>
Key points.
| Basis | SQA process | Development process |
|---|---|---|
| Objective | Ensure quality and process compliance | Build the working product |
| Focus | Prevention and process audit | Construction and delivery |
| Activities | Reviews, audits, standards, testing oversight | Requirements, design, coding, testing |
| Output | Reports and quality improvements | Software product |
| Team | Independent of developers | Developers and managers |
| Timing | Throughout the life cycle | In its phases |
SQA gives management independent assurance that the process is followed.
Asked: [7 marks] (Jun 2024) Explain how Software Quality Assurance process differs from software development process.
Project Plan
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. The project plan is the document that records the scope, schedule, resources, risks and quality approach of a project.
Key points.
- It contains an introduction, estimates, schedule, staffing, risk plan and SCM plan.
- It serves as the baseline against which progress is tracked.
- It is reviewed and updated whenever the project changes.
Project Metrics
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Low weight</span>
Definition. <mark>Project metrics are quantitative measures used to plan, monitor and control a software project and to improve its process.</mark>
Key points.
- The main intent is to measure progress and quality, control cost and schedule, and predict future effort and defects.
- Productivity metrics: LOC or function points per person-month.
- Defect metrics: defects per KLOC and defect removal efficiency.
- Schedule metrics compare planned and actual completion.
Asked: [7 marks] (Jun 2023) What is the main intent of a project metrics?
Last-minute revision
- Maintenance types: corrective, adaptive, perfective, preventive; maintenance is 60-70% of life-cycle cost.
- Annual maintenance cost = development cost $\times$ fraction changed: 10,000,000 $\times$ 5% = Rs. 500,000.
- SCM aim: control change and preserve integrity; components: identification, version control, change control, audit, status accounting.
- A baseline is an approved version changed only through formal change control.
- Re-engineering = reverse engineering + restructuring + forward engineering.
- Feasibility types: technical, economic, operational, legal, schedule.
- Critical path is the longest path in the network and gives minimum duration.
- Risk exposure = probability $\times$ impact.
- Risk strategies: avoid, transfer, mitigate.
- SQA is preventive and independent; development builds the product.
- Basic COCOMO organic: $E = 2.4(KLOC)^{1.05}$.
Memory hooks
- CAPP: Corrective, Adaptive, Perfective, Preventive.
- SCM: I-V-C-A-S, identify, version, change, audit, status.
- Risk: Identify, Analyse, Prioritise, Plan, Monitor.
- Feasibility: TEOLS, technical, economic, operational, legal, schedule.
- Re-engineering goes backward first (reverse), then forward.
Coverage checklist
- Need and Types of Maintenance: Jun 2023 cost numerical, Jun 2025 types.
- Software Configuration Management (SCM): Jun 2023 and Jun 2025 aim and components.
- Software Change Management: covered, not asked.
- Version Control: covered, not asked.
- Change control and Reporting: covered, not asked.
- Program Comprehension Techniques: covered, not asked.
- Re-engineering: Jun 2024 re- and reverse engineering.
- Reverse Engineering: covered, also in Jun 2024 question.
- Tool Support: covered, not asked.
- Project Management Concepts: covered, not asked.
- Feasibility Analysis: Jun 2025 process.
- Project and Process Planning: covered, not asked.
- Resources Allocations: covered, not asked.
- Software efforts, Schedule, and Cost estimations: covered, not asked.
- Project Scheduling and Tracking: Jun 2025 techniques.
- Risk Assessment and Mitigation: Jun 2023, Jun 2024 risk process.
- Software Quality Assurance (SQA): Jun 2024 SQA versus development.
- Project Plan: covered, not asked.
- Project Metrics: Jun 2023 intent.