1. SDLC Models
The Waterfall model runs requirements → design → implementation → testing → deployment → maintenance strictly in sequence, with no going back — simple to manage, but poorly suited to projects where requirements are likely to change. The Spiral model combines iterative development with explicit risk analysis at each cycle (making a fresh pass through planning, risk analysis, engineering and evaluation every loop) — well suited to large, high-risk projects. The Agile model (Scrum, XP) develops in short iterations ("sprints"), continuously incorporating customer feedback and welcoming changing requirements even late in development, at the cost of being harder to fix a firm cost/schedule upfront.
The V-model pairs each development phase with a corresponding testing phase (e.g. requirements pair with acceptance testing, design pairs with system testing), emphasising that testing planning starts early rather than only after coding. The Incremental model delivers the system in usable functional chunks (increments) rather than all at once.
Requirements clear, stable, unlikely to change -> Waterfall
Large project, high risk, needs risk analysis loops -> Spiral
Requirements likely to evolve; customer wants early,
frequent working software -> Agile
Testing must be planned alongside each dev phase -> V-model
Want to deliver working subsets of the system early -> Incremental
"A project has evolving requirements and the customer wants to see working software every few weeks" is always pointing at Agile — "a large, high-risk project needing repeated risk assessment" is always pointing at Spiral. Learn to spot these two signatures instantly.
2. Requirements, Design & Testing
Verification asks "are we building the product right?" — checking that each phase's output correctly implements its input specification (reviews, walkthroughs, static analysis, done throughout development). Validation asks "are we building the right product?" — checking the finished product against actual user needs (typically via dynamic testing, at the end). This single distinction (right vs. correct, process vs. product) is one of the most repeated Software Engineering exam questions.
Black-box testing tests functionality against specifications with no knowledge of internal code structure (equivalence partitioning, boundary value analysis). White-box testing tests internal logic paths with full knowledge of the code (statement coverage, branch coverage, path coverage). Testing levels, smallest to largest scope: unit testing (a single function/module in isolation) → integration testing (interactions between combined modules) → system testing (the whole integrated system against requirements) → acceptance testing (validation by/for the actual customer, typically the final gate before release).
3. Software Project Management: Estimation, Risk & Quality
COCOMO (COnstructive COst MOdel) estimates development effort (person-months) from estimated lines of code or function points, in three modes of increasing complexity: organic (small, familiar, experienced team), semi-detached (medium size/complexity, mixed experience), and embedded (large, complex, tight constraints, e.g. real-time systems) — each mode uses different constants in the same underlying effort formula, reflecting how much harder effort scales with size as project complexity grows.
Software risk management follows: risk identification → risk analysis (assessing probability and impact) → risk planning (mitigation/contingency strategy) → risk monitoring (ongoing tracking as the project proceeds). Software quality is often summarised via McCall's or ISO 9126 quality models, covering attributes like reliability, usability, efficiency, maintainability and portability — the syllabus expects you to recognise these named attribute categories, since exam questions often give a quality complaint and ask which attribute it violates.
"The software crashes randomly" → reliability. "It's hard for a new user to learn" → usability. "It's slow" → efficiency. "A small change requires touching many files" → maintainability. Matching a described problem to its named quality attribute is exactly the skill this sub-topic tests.
4. Hands-on Exercise
Pick the right SDLC model for three scenarios, and classify five testing activities
This unit rewards recognising the signature of each concept quickly and correctly.
Part 1 — SDLC scenarios:
- A government project has fixed, well-documented requirements and a hard contractual deadline. Which SDLC model fits, and why?
- A startup wants to release a minimal version to real users within 3 weeks and iterate based on their feedback. Which model fits, and why?
- A defense contractor is building a large, safety-critical system and must formally assess risk at every stage. Which model fits, and why?
Part 2 — Testing classification:
- Classify each as verification or validation: (a) a design document peer review, (b) a user acceptance test with real customers, (c) a static code analysis tool flagging unused variables.
- Classify each as black-box or white-box: (d) testing that every branch of an if/else is executed at least once, (e) testing boundary values of a numeric input field without looking at the code.
5. Exam-Style Practice (UGC NET Pattern)
Five NTA-pattern questions on SDLC models, testing and project management.
Q1
Which SDLC model is most appropriate for a large, high-risk project that requires repeated formal risk analysis throughout development?
A) Waterfall model
B) Spiral model
C) Agile model
D) V-model
Which SDLC model is most appropriate for a large, high-risk project that requires repeated formal risk analysis throughout development?
A) Waterfall model
B) Spiral model
C) Agile model
D) V-model
Correct answer: B) Spiral model. The Spiral model was specifically designed to combine iterative development with explicit risk analysis at every cycle, making it the standard fit for large, high-risk projects.
Q2
"Are we building the product right?" — checking each development phase's output against its own specification — describes:
A) Validation
B) Verification
C) Acceptance testing
D) Regression testing
"Are we building the product right?" — checking each development phase's output against its own specification — describes:
A) Validation
B) Verification
C) Acceptance testing
D) Regression testing
Correct answer: B) Verification. Verification asks whether the process correctly implements its specification at each phase ("building the product right"); validation instead asks whether the final product meets actual user needs ("building the right product").
Q3
Testing that checks all branches of a program's conditional statements are executed, based on full knowledge of the source code, is:
A) Black-box testing
B) White-box testing
C) Acceptance testing
D) Alpha testing
Testing that checks all branches of a program's conditional statements are executed, based on full knowledge of the source code, is:
A) Black-box testing
B) White-box testing
C) Acceptance testing
D) Alpha testing
Correct answer: B) White-box testing. Branch coverage testing requires knowledge of the internal code structure to identify and exercise every branch, which is the defining feature of white-box testing, as opposed to black-box testing (specification-only, no code knowledge).
Q4
In the standard testing hierarchy, which level of testing comes immediately after unit testing?
A) Acceptance testing
B) System testing
C) Integration testing
D) Regression testing
In the standard testing hierarchy, which level of testing comes immediately after unit testing?
A) Acceptance testing
B) System testing
C) Integration testing
D) Regression testing
Correct answer: C) Integration testing. The standard order is unit testing (single modules) → integration testing (combined module interactions) → system testing (the whole system) → acceptance testing (customer-facing validation).
Q5
COCOMO is primarily used for which software project management activity?
A) Version control
B) Effort/cost estimation
C) Automated testing
D) Requirements elicitation
COCOMO is primarily used for which software project management activity?
A) Version control
B) Effort/cost estimation
C) Automated testing
D) Requirements elicitation
Correct answer: B) Effort/cost estimation. COCOMO (COnstructive COst MOdel) is an effort-estimation model that predicts development effort in person-months from an estimate of project size, using different constants for organic, semi-detached and embedded project modes.