Abstraction and Decomposition
Decomposition is breaking a complex problem into smaller parts. The benefits come from what those smaller parts let you do: understand the problem, share the work, test each piece and change one piece later without disturbing the rest.
A large problem can feel overwhelming because there are too many details to consider at once. Once it is split, you can analyse each part on its own: what it needs, what it produces and how it connects to the other parts. For example, planning a school charity fair could be split into booking stalls, selling tickets, arranging first aid and advertising. Each part is small enough to think through clearly, and together they make the whole event easier to solve.
Different people or teams can take separate parts and work on them at the same time, which can speed up development. A developer can also focus on one small part without needing to consider every irrelevant detail of the whole system. In a program, one person might build the part that works out the price of a cinema ticket, including any student discount, while another builds the part that prints the booking confirmation; each can get on with their own task.
Smaller parts can be tested and corrected before they are combined. If something goes wrong later, you can check each part in turn rather than searching one huge solution. This reduces errors and makes a solution easier to maintain, because a change can be made to one part while the others stay the same. For instance, changing how a quiz stores player names should only affect that storage part, leaving scoring and timing untouched.
Decomposition is about splitting a problem into parts; it is not the same as abstraction, which hides unnecessary detail.
Edexcel GCSE Computer Science · Abstraction and Decomposition