In programming, a programmer tries to evaluate a real world problem and find its technological solution. In this process of programming, social or mathematical problems are converted to technologically understandable solutions which can be manipulated using a computer.
1. Problem analysis. This deals with taking the actual bulky problem and then redefining it and breaking it into a number of modules which work dependently so as to produce the final solution to the stated problem. A chart may be used to give a pictorial representation of solving the problem.
2. Structure chart. This is a pictorial representation of the actual solution structure giving the flow chart or data flow from input to output of the program. This chart also gives a representation of how the solution will be manipulated.
3. IPO chart. This is a pictorial representation of input data, how it is processed and the expected output from the whole process. In our problem, the input is money earned, the processes first determines whether the amount input is taxable and the output is either taxable amount and the corresponding tax or a null answer if the input value is less than the minimum taxable value.
4. Coupling diagram. This tells of how the input and output are related and connected. It usually contains the processes used in processing the data input and then giving an output value.
5. Data dictionary. This is usually a directory which contains the expected data and handling techniques so as to come up with a solution. Any data input outside the data sets contained within the dictionary is rejected.
For my program, I would use IPO and problem analysis tools due to their simplicity and precision in output depiction. This would mean easy deployment and use in the process of coming up with the solution.
In the problem solving process, several steps are taken so as to ensure integrity of the program and precision as well. Some of these steps are outlined below.
Problem analysis so as to come up with the specific goal of the program developed. Alternative approaches are also given to the main problem.
Divide and conquer rule is applied. This means that the main problem is broken down into simpler subprograms which are much easier to come up with. These subprograms or modules are interrelated so as to ensure that the main program is complete.
Development of relationships within a subprogram. This is done since most of programs rely on mathematical approach in finding the solution. This means that mathematical expressions and symbols are used.
Creating relationships between the subprograms. This is done so as to ensure that the main program runs coherently and can handle any sort of input and give the best solution.
Expressions, constants and symbols may be inherited by a subprogram from the globally declared variables. This is done to reduce the process of creating a program ad reduce repetition within the program.