Taking the problem defined by the user and breaking it down into its constituent parts
What is the purpose of problem decomposition?
To make complex problems easier to solve and more manageable by allowing tasks to be divided between a group of people according to individual skill sets.
State another name given to top-down design.
Stepwise refinement
What is the purpose of top-down design?
Continually break problems down into subproblems until each subproblem can be represented as a single task and ideally a self-contained subroutine
What are the benefits of using top-down design?
Problems can be solved and modules developed by different people.
Tasks can be tested separately. Modules are self-contained
What sort of problems is top-down design suited to?
Large, complex problems
What is the second stage of thinking procedurally in software development?
Identifying components of a solution
How can the lowest level subproblems in top-down design in code?
As self-contained modules or subroutines
What do software developers need to consider when recombining components of a solution?
The order in which subroutines are executed, and how they interact with each other, based on their role in solving the problem.
What must a software developer do before designing a subroutine to solve a particular problem?
See whether it is possible for an already existing subroutine or module to be used
State two advantages of utilising reusable components
More reliable than newly-coded components, as they have already been tested.