Identifying the Solution


Often, coding is supposed to be the most essential part of any software development process. However, coding is just a part of the process and may actually take the minimum amount of time if the system is designed correctly. Before the system can be designed, a solution must be identified for the problem at hand.

The first thing to be noted about designing a system is that initially the system analyst may come up with more than one solutions. But the final solution or the product can be only one. In-depth analysis of data gathered during the requirement gathering phase can help in coming to a unique solution. Correctly defining the problem is also crucial for getting to the solution.

When faced with the problem of multiple solutions, analysts go for visual aids like flowcharts, data flow diagrams, entity relationship diagrams, etc. to understand each solution in depth.


Flowcharting is the process of illustrating workflows and data flows in a system through symbols and diagrams. It is an important tool to assist the system analyst in identifying a solution to the problem. It depicts the components of the system visually.


These are the advantages of flowcharting −

  • Visual representation helps in understanding program logic

  • They act as blueprints for actual program coding

  • Flowcharts are important for program documentation

  • Flowcharts are an important aid during program maintenance

These are the disadvantages of flowcharting −

  • Complex logic cannot be depicted using flowcharts

  • In case of any change in logic or data/work flow, flowchart has to be redrawn completely

Data Flow Diagram

Data flow diagram or DFD is a graphical representation of data flow through a system or sub-system. Each process has its own data flow and there are levels of data flow diagrams. Level 0 shows the input and output data for the whole system. Then the system is broken down into modules and level 1 DFD shows data flow for each module separately. Modules may further be broken down into sub-modules if required and level 2 DFD drawn.


After the system is designed, it is handed over to the project manager for implementation, i.e. coding. The actual coding of a program is done in a programming language, which can be understood only by programmers who are trained in that language. However, before the actual coding occurs, the basic operating principles, work flows and data flows of the program are written using a notation similar to the programming language to be used. Such a notation is called pseudocode.

Here is an example of a pseudocode in C++. The programmer just needs to translate each statement into C++ syntax to get the program code.


Identifying Mathematical Operations

All instructions to the computer are finally implemented as arithmetic and logical operations at machine level. These operations are important because they −

  • Occupy memory space
  • Take time in execution
  • Determine software efficiency
  • Affect overall software performance

System analysts try to identify all major mathematical operations while identifying the unique solution to problem at hand.