Program design

There are several steps to realising a program.

  1. Problem description and specification.
  2. Program design
  3. Coding.
  4. Execution and testing.
  5. Maintenance.

Program specification

Before you can start writing a program, you have to know exactly what problem you want to solve. In particular you have to decide on the input and output: how many inputs are there, and what is their valid range; what information will the program output.

Program design

Knowing what problem needs to be solved is not the same as knowing how to solve it. Often there are many possible ways of arriving at the solution of a problem. In the program design phase you draw up a description of the exact algorithm.

One popular way of describing an algorithm without actually coding it is by drawing up a flow chart.

Program coding

If the problem solution method has been described in a sufficiently detailed way, it can be coded, that is, written in a specific programming language, such as Fortran. In coding you have to ensure that the program follows the syntax of the language, and that it actually realises the algorithm you drew up in the previous step.

Execution and testing

It is unlikely for a program to give a correct solution to the original problem on its first run. There will probably be errors. For this, the program needs to undergo testing.

Maintenance

If a program is to be used more than once, errors can surface that did not appear during the testing phase. Fixing such errors falls under maintenance. Also, it can be the case that the customer finds that he had something slightly different in mind than what the program delivers, so even extensions to the program, sometimes resulting from modifications to the problem specification may count as maintenance.