Problem analysis is the process of defining a problem and decomposing overall system into smaller parts to identify possible inputs, processes and outputs associated with the problem. This task is further subdivided into six subtasks namely:
- Specifying the Objective :
First, we need to know what problem is actually being solved. Making a clear statement of the problem depends upon the size and complexity of the problem. Smaller problems not involving multiple subsystems can easily be stated and then we can move onto the next step of “Program Design”. However, a problem interacting with various subsystems and series of programs require complex analysis, in-depth research and careful coordination of people, procedures and programs.
- Specifying the Output :
Before identifying inputs required for the system, we need to identify what comes out of the system. The best way to specify output is to prepare some output forms and required format for displaying result. The best person to judge an output form is the end user of the system i.e. the one who uses the software to his benefit. Various forms can be designed by the programmer which must be examined to see whether they are useful or not.
- Specifying Input Requirements :
After having specified the outputs, the input and data required for the system need to be specified as well. One needs to identify the list of inputs required and the source of data. For example, in a simple program to keep student’s record, the inputs could be the student’s name, address, roll-numbers, etc. The sources could be the students themselves or the person supervising them.
- Specifying Processing Requirements :
When output and inputs are specified, we need to specify process that converts specified inputs into desired output. If the proposed program is to replace or supplement an existing one, a careful evaluation of the present processing procedures needs to be made, noting any improvements that could made. If the proposed system is not designed to replace an existing system, then it is well advised to carefully evaluate another system that addresses a similar problem.
- Evaluating the Feasibility :
After the successful completion of all the above four steps one needs to see whether the things accomplished so far in the process of problem solving are practical and feasible. To replace an existing system one needs to determine how the potential improvements outperforms existing system or other similar system.
- Problem Analysis Documentation
Before concluding the program analysis stage, it is best to record whatever has been done so far in the first phase of program development. The record should contain the statement of program objectives, output and input specifications, processing requirements and feasibility.