Community resourceWorksheet
OCR H446 2.1.3 Decomposition and solution components
Part 1 of 2 · H446 2.1.3 · Thinking procedurally
Thinking procedurally, OCR H446 2.1.3, starts with breaking a system apart along defensible lines. A student-run festival system and a community equipment-loan service give students practice at giving every component one responsibility and a clear interface.
Students will:
- distinguish the components of a problem from the components of a solution
- give each component a single responsibility with named inputs and outputs
- explain the problems caused by one component doing several unrelated jobs
- propose better boundaries to replace an overloaded component
- decompose an unfamiliar system and state a testing or teamwork benefit that follows
Inside: 7 explanation cells, 1 multiple-choice question, 1 fill-in-the-blanks cell and 3 written answers. 25 marks, about 25 to 35 minutes.
Series: H446 2.1.3 · Thinking procedurally, part 1 of 2.
Shared by Coding PathwayVerified teacher
- 12 cells
- About 30 minutes
- CC BY-SA 4.0
- Shared 31 Aug 2026
- Updated 3 Sept 2026
Preview
The whole resource, exactly as a class sees it. Answers and marking are held back.
Thinking procedurally: decomposition and components
A student-run festival system has booking, programme and information responsibilities. Decomposition turns the large problem into coherent subproblems that can be understood, designed and tested.
By the end, you will be able to
- distinguish components of a problem from components of a solution;
- choose coherent responsibility and data boundaries;
- interpret and complete a structure chart;
- explain developed benefits for testing and team development.
Reactivate: a function or procedure should have one clear responsibility and interface.
From requirements to a structure chart
Problem components describe what must be solved: prevent timetable clashes, keep bookings within capacity and give attendees useful information. Solution components are designed modules/sub-procedures that perform those responsibilities.
Splitting code into arbitrary short sections is not useful decomposition. Each component needs a coherent purpose and named data flowing through its interface.
Worked responsibility table
| Component | Inputs | Output or side effect |
|---|---|---|
| validate_slot | proposed start/end, existing slots | Boolean or clash details |
| check_capacity | requested count, capacity, booked | Boolean and remaining count |
| build_access_route | start, destination, access needs | route steps |
Benefits become developed when linked: check_capacity can be tested with boundary values independently → capacity faults are found before integration. Separate components can be allocated to team members → work can progress with agreed interfaces.
Which option is the best example of decomposition?
- ADividing the festival problem into coherent booking, programme and information subproblems
- BWriting every statement on a separate line
- CRemoving all difficult requirements
- DRunning every component at the same time
Add two lower-level components beneath manage bookings. For each, state its responsibility and one input or output.
Choose components that together support safe booking.
Students type their answer here.
Guided boundary check
Poor design: one component called doEverything validates a request, changes capacity, formats an email and draws a venue map.
Ask: which data does each responsibility need? Which changes state? Which could be tested independently? A better boundary separates validation, reservation, route building and confirmation formatting.
Explain two problems caused by the doEverything component and propose a better component boundary for each.
Use problem → mechanism → development consequence.
Students type their answer here.
Independent transfer: equipment loans
A community hub lends cameras, microphones and tripods. It must register items, find available items, create loans, accept returns and report overdue loans.
Decompose the equipment-loan problem into four solution components. For each, state its responsibility and one interface value. Then explain one testing or teamwork benefit.
Keep data ownership and changes to availability clear.
Students type their answer here.
Checkpoint
Complete the distinction between problem and solution components. There is no answer bank, and correctness is withheld until teacher review.
Review your understanding
Before submitting, check that you can explain the main distinction in your own words, apply it in an unfamiliar context and justify the resulting behaviour or consequence.