Part 5 - Decompose the problem
In this part of developing a solution to a problem, you need to:
a) Break down the problem into smaller parts suitable for computational solutions justifying any decisions made.
Things to consider doing:
a) Put a heading, Breaking down the problem.
b) Look at the Requirements Specification. Write a list of the jobs that need doing to meet all of the requirements.
c) Can any of the jobs be broken down even further? Try to break down jobs into units so that each unit is for one identifable task.
d) Describe in more detail what is involved with each of the jobs in your list.
e) Try to justify why you have broken the problem down into the component parts on your list. For example:
You might decide that you need to create classes for each of the main characters in a game but because they all share some characteristics, you will design a superclass called 'Character'. Using inheritance will simplify the overall design.
You might have to produce an ordered list of items to display so you will use a standard sorting algoithm to do this rather than write a completely new one. You will do this to save time.
You might have two characters fighting in a game so you will produce a function that receives two characters, lets them fight and then outputs the result. You will do this because this can then be used for all fights between two characters.
You need to use a lot of different sounds in your game. You will therefore use an open source library of sounds so you don't have copyright issues.