📚 Knowledge Library — Topic 7.2 — Algorithm Design & Problem Solving

The Analysis Stage

Learn how programmers investigate a problem, identify requirements and decide what a solution must do before any design begins.

1. Invitation

Before solving a problem, programmers must understand it.

The analysis stage is the first stage of the program development life cycle.

Its purpose is to investigate the problem and identify exactly what the new program must do.

💡 Key idea: analysis decides what the solution must achieve.
Figure 1.1
Start with the Problem
Investigate

Identify needs

Define requirements
2. Big Idea

Analysis turns a vague idea into clear requirements.

A request such as “we need a homework app” is too vague to design or code.

Analysis asks questions such as: Who will use it? What data will be entered? What results must be shown? What information must be stored?

💡 Requirements are the features and tasks the final solution must provide.
Figure 2.1
From Idea to Requirement
“Build an app”

Ask questions

Clear specification
3. FutureLogic Bridge

Think of a doctor before giving treatment.

A doctor does not prescribe treatment before understanding the problem. They ask questions, gather information and identify what is wrong.

Programmers do the same during analysis. They investigate first, then design the solution.

💡 Bridge: diagnose the problem before prescribing the program.
Figure 3.1
Diagnose Before Design
Ask

Gather facts

Identify need

Plan later
4. Identify the Problem

The first task is to state what needs fixing or improving.

The problem should be described clearly and without jumping straight to a solution.

For example: “Students sometimes forget homework deadlines” describes the problem. “Build a mobile app” describes one possible solution.

🎯 Exam Tip: analysis identifies the problem and requirements. It does not create the algorithm.
Figure 4.1
Problem vs Solution
Problem:
deadlines forgotten

Solution idea:
reminder program
5. Gather Requirements

Requirements explain what the finished program must do.

Requirements may be gathered by speaking to users, observing the current system or studying existing documents.

They should be specific enough to guide the next stage of development.

💡 Example requirement: “The program must allow a student to enter a task and deadline.”
Figure 5.1
Requirement Questions
Who uses it?
What must it do?
What data is needed?
What counts as success?
6. Inputs, Processes, Outputs and Storage

IPOS helps organise the requirements.

ComponentMeaning
InputData entered into the system.
ProcessActions performed on the data.
OutputInformation produced by the system.
StorageData kept for future use.
💡 IPOS gives programmers a simple checklist for understanding a system.
Figure 6.1
The IPOS Model
Input

Process

Output
+
Storage
7. Abstraction

Abstraction removes details that do not matter.

During analysis, programmers focus on the information needed to solve the problem and ignore irrelevant detail.

For a homework reminder, the task title and deadline matter. The colour of the student’s school bag does not.

💡 Abstraction = keep the important details and remove the unnecessary ones.
Figure 7.1
Focus on What Matters
All details

Remove distractions

Essential information
8. Decomposition

Large problems become easier when split into smaller parts.

Decomposition divides a system into smaller sub-systems or subproblems.

Each smaller part can then be understood, designed and tested more easily.

💡 Introduction only: the next lesson explores decomposition in greater depth.
Figure 8.1
Split the Problem
Homework system

Add task
Store task
Show deadlines
Delete task
9. Worked Example

Analyse a homework reminder program.

Problem

Students sometimes forget homework deadlines.

Requirements

The program must allow tasks and deadlines to be entered, store them and display upcoming work.

IPOS

Input: task name and deadline.

Process: compare deadlines and order tasks.

Output: a list of upcoming homework.

Storage: saved task records.

Model answer: “During analysis, the problem and user requirements are identified. The required inputs, processes, outputs and storage are then defined.”
Figure 9.1
Homework Reminder IPOS
Task + deadline

Compare and organise

Upcoming task list
+
Saved records
10. Exam Tip

Use analysis vocabulary precisely.

When asked for tasks in the analysis stage, suitable answers include identifying the problem, identifying requirements, abstraction and decomposition.

🎯 Strong answer: “The developer identifies the problem, gathers the requirements and uses decomposition to split the system into smaller parts.”
Figure 10.1
Analysis Keywords
Problem
Requirements
Abstraction
Decomposition
11. Common Mistake

Do not put design tools in the analysis stage.

Flowcharts, pseudocode and structure diagrams are used to plan the solution during design.

⚠️ Common Mistake: “Analysis is where the flowchart is drawn.” Correct answer: “Analysis identifies the problem and requirements.”
Figure 11.1
Keep the Stages Separate
Analysis = WHAT?

Design = HOW?
12. Summary

The analysis stage in one screen.

Analysis is the first stage of the program development life cycle.

It identifies the problem, gathers requirements and defines the required inputs, processes, outputs and storage.

Abstraction removes unnecessary detail, while decomposition divides the problem into smaller parts.

💡 Final thought: understand the problem before planning the solution.
Figure 12.1
Final Model
Problem

Requirements

IPOS

Smaller parts