πŸ“š Knowledge Library β€” Topic 7.1 β€” Algorithm Design & Problem Solving

Program Development Life Cycle

Discover how programmers move from a problem to a finished solution using a clear sequence of organised stages.

1. Invitation

Good programs are planned before they are coded.

The program development life cycle is a structured sequence of stages used to create a software solution.

Each stage has a different purpose, but they all work together to move from an idea to a reliable program.

πŸ’‘ Key idea: the PDLC gives programmers an organised route from problem to solution.
Figure 1.1
A Structured Journey
Problem
↓
Plan
↓
Program
↓
Review
2. Big Idea

The stages answer different questions.

StageMain question
AnalysisWhat problem must be solved?
DesignHow will the solution work?
CodingHow will the design become a program?
TestingDoes the program work as expected?
ImplementationHow will users begin using it?
EvaluationDoes it meet the original requirements?
Figure 2.1
The Main Sequence
Analysis
↓
Design
↓
Coding
↓
Testing
↓
Implementation
↓
Evaluation
3. FutureLogic Bridge

Think of building a house.

Before builders begin, they find out what the owner needs. Architects then create plans. Builders follow those plans, inspectors check the work, and the owner decides whether the house meets the original brief.

Software development follows the same pattern.

πŸ’‘ Bridge: requirements β†’ plans β†’ build β†’ inspect β†’ use β†’ review.
Figure 3.1
The House-Building Bridge
Ask
↓
Plan
↓
Build
↓
Check
Coding before design is like building before drawing the plans.
4. Analysis

Analysis decides what the program must do.

The problem is identified and the requirements are gathered.

Developers may identify the required inputs, processes, outputs and storage. They can also use abstraction and decomposition to make the problem easier to manage.

πŸ’‘ Analysis = understand the problem and define the requirements.
Figure 4.1
Analysis Questions
What goes in?
What happens?
What comes out?
What must be stored?
5. Design

Design turns requirements into a plan.

Programmers decide how the solution will work before they write the final code.

They may use structure diagrams, flowcharts and pseudocode to represent the solution clearly.

πŸ’‘ Design produces the plan; it does not produce the finished program.
Figure 5.1
Design Tools
Structure diagram
+
Flowchart
+
Pseudocode
6. Coding and Testing

The plan is written, run and corrected.

During coding, the design is translated into a programming language.

During testing, the program is run with suitable test data to check its behaviour and identify errors that need correcting.

πŸ’‘ Coding creates the program. Testing checks the program.
Figure 6.1
Build and Check
Write code
↓
Run program
↓
Find errors
↓
Correct them
7. Implementation and Evaluation

The finished program must work for real users.

Implementation introduces the completed system into its working environment. This may include installation, data transfer and user training.

Evaluation compares the finished solution with the original requirements and identifies improvements.

πŸ’‘ Implementation puts it into use. Evaluation checks whether it achieved the goal.
Figure 7.1
Use and Review
Install
↓
Introduce to users
↓
Compare with requirements
8. Maintenance

The work does not always end after release.

Programs may need to be updated after they are released.

Maintenance can fix errors discovered during use, improve the program or adapt it to new requirements.

πŸ’‘ Maintenance = fix, improve or adapt after release.
Figure 8.1
An Ongoing Cycle
Release
↓
Feedback
↓
Update
β†Ί
9. Worked Example

A school needs a homework reminder program.

How the stages would be used

Analysis: identify that students need to enter homework tasks and view upcoming deadlines.

Design: plan the inputs, processes and outputs using a flowchart or pseudocode.

Coding: write the program in a chosen language.

Testing: enter valid and invalid deadlines to check that the program behaves correctly.

Evaluation: ask whether the final program meets the original requirements.

Model answer: β€œAnalysis identifies the problem and requirements. Design creates the algorithm. Coding implements the design, and testing checks that the program works as expected.”
Figure 9.1
Homework Reminder
Need identified
↓
Solution planned
↓
Program written
↓
Program checked
10. Exam Tip

Learn the purpose of each stage, not only the order.

Exam questions often give a description and ask you to identify the matching stage.

🎯 Exam Tip: analysis identifies the problem and requirements; design creates algorithms; coding writes the program; testing checks that it works.
Figure 10.1
Four Core Matches
Requirements = Analysis
Algorithms = Design
Program language = Coding
Find errors = Testing
11. Common Mistake

Do not confuse analysis with design.

Analysis identifies what the solution must achieve.

Design decides how the solution will achieve it.

⚠️ Common Mistake: placing flowcharts and pseudocode in analysis. They are design tools.
Figure 11.1
What vs How
Analysis
= WHAT?

Design
= HOW?
12. Summary

The PDLC in one screen.

The program development life cycle provides an organised way to create software.

Analysis identifies the problem. Design plans the solution. Coding creates the program. Testing checks it. Implementation introduces it. Evaluation reviews it.

Maintenance allows the program to be corrected and improved after release.

πŸ’‘ Final thought: understand, plan, build, check, use and improve.
Figure 12.1
Final Model
Understand
↓
Plan
↓
Build
↓
Check
↓
Improve