SOFTWARE DEVELOPMENT PROCESS


Computers simply do what the programs ask them to do and do not yet have the ability to formulate solutions to problems.

Programmers must provide the solutions as part of the software development task.

The software development process can be roughly divided into 2 phases, each phase has sub-tasks given as follows:

A. Problem-Solving Phase

  1. Problem definition - Complete understanding of what you want the program to do, what inputs are needed, and what type and form of outputs are expected.

  2. Algorithm design - A sequence of precise instructions that, when executed in the order they are listed, leads to a solution is called an algorithm.
    The instructions are usually written in plain English.
    Algorithm design is often the most difficult part of programming.
    Complex problems often need to be broken up into smaller manageable sub-problems and have an algorithm for each of them. This approach is call algorithm refinement.

  3. Desktop Testing - Mentally going through the algorithm and execute the steps yourself using pen and paper to test if your algorithm works. Go back to the first 2 steps if it fails the test.

B. Implementation Phase
  1. Translating the algorithm to a program using the detailed rules of the programming language.

  2. Do a desktop test line-by-line to see if the program works.

  3. Go back to the first step if the test fails.