§ OL — Software Development Basics (PDLC & Testing)
What is the Program Development Lifecycle (PDLC)?
A structured, systematic process used to develop software. It organises development into stages, ensuring each step is documented and understood. The lifecycle is continuous — programs require updates throughout their lifespan.
Name the FIVE stages of the Program Development Lifecycle.
What is the purpose of the Analysis stage?
To define the problem the program will solve and specify its requirements. This includes a feasibility study and fact-finding, and results in a requirements specification.
What is the purpose of the Design stage?
To create a blueprint of how the program will fulfil the requirements. Outputs include structure charts, pseudocode, flowcharts, and identifier tables.
What is the purpose of the Testing stage?
To verify that the program works correctly under all specified conditions. Uses a test plan with different types of test data.
What is the purpose of the Maintenance stage?
To ensure the program continues to work effectively after deployment. Corrects errors, adapts to new requirements, and improves performance.
What is a syntax error? Give an example.
An error in the grammar of the programming language. Caught at compile/interpret time — the program cannot run until fixed.
Example: missing a colon, wrong keyword spelling, incorrect indentation.
What is a logic error? Give an example.
An error in the program’s reasoning. The program runs without crashing but produces WRONG results. Hardest type to find.
Example: using + instead of *, or using < instead of <=.
What is a run-time error? Give an example.
An error that occurs DURING execution. The program compiled successfully but crashes or behaves unpredictably at runtime.
Example: dividing by zero, accessing an array index that doesn’t exist.
What is Normal test data?
Valid data within the accepted range. The program should ACCEPT and process it correctly.
Example (range 0–100): 50 → accepted.
What is Abnormal test data?
Invalid data outside the accepted range. The program should REJECT it.
Example (range 0–100): -5 or 110 → rejected.
What is Extreme test data?
Data at the very edges of the accepted range. The program should still ACCEPT it.
Example (range 0–100): 0 or 100 → accepted.
What is Boundary test data?
Data both at the accepted limit AND just beyond it. Tests the boundary from both sides.
Example (range 0–100): -1 (reject), 0 (accept), 100 (accept), 101 (reject).
What is a Dry Run?
A manual testing method where the programmer traces through pseudocode or code step by step, using a trace table to record the value of each variable at each step. No computer is needed.
What is a trace table?
A table used during a dry run. Columns are variable names; rows are each step/iteration. The tester fills in how each variable changes as the code is ‘run’ mentally.
What are the THREE types of maintenance?
§ AS Only — Development Lifecycle Models
Describe the Waterfall model of software development.
A linear, sequential model. Each stage is fully completed and formally signed off before the next begins. No overlap between stages. Customer involvement is low (mainly at start and end). Produces comprehensive documentation at each stage.
State TWO benefits and TWO drawbacks of the Waterfall model.
Benefits:
1. Simple to manage — clear stage deliverables and sign-offs.
2. Good for projects where requirements are stable and well-understood.
Drawbacks:
1. Inflexible — changes in requirements are costly once a stage is signed off.
2. Working program only delivered very late in the lifecycle.
Describe the Iterative model of software development.
A basic version of the program is built first, then expanded through repeated cycles (iterations) until complete. Each iteration goes through mini-versions of design, code, and test. High customer involvement — partial programs demonstrated after each cycle.
State TWO benefits and TWO drawbacks of the Iterative model.
Benefits:
1. Early user feedback reduces costly surprises.
2. Easier to test and debug — smaller segments per iteration.
Drawbacks:
1. Requires a broad system definition upfront before iterations can be planned.
2. Planning-intensive; not suitable for short/simple projects.
Describe Rapid Application Development (RAD).
Different parts of the program are developed IN PARALLEL by separate teams. Prototypes are used to gather continuous user feedback. Minimal initial planning — emphasis on quickly producing functional prototypes. Very high customer involvement throughout.
State TWO benefits and TWO drawbacks of RAD.
Benefits:
1. Fast delivery — a functioning system is available early.
2. Very flexible — adjustments made at any point based on feedback.
Drawbacks:
1. System must be highly modular to allow parallel development.
2. Requires skilled, experienced developers.