Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
A program is a sequence of instructions used to perform a specific task. The program development process can be viewed in a number of steps as follows:
Understanding the Specifications: The specification for the problem must be clear and unambiguous.
Role of the System Analyst: Medium- and large-sized companies employ professionals, designated as a system analyst, who is responsible for the overall design procedures. The system analyst determines, by querying the client, the nature of the inputs and outputs needed, and provides the input and output layouts along with the processing requirements for the programmers. According to customization needs, as stated earlier, the client might be advised to purchase a general-purpose package, or a customized package might be in order.
Problem Analysis: The program to be developed might be simple or complex, in accordance with the nature of the task.
Solution Design: Every task to be executed needs to be planned carefully. This involves testing the various conditions, taking alternate paths in the procedure depending on the outcome of the test, and determining the sequence of the steps. There are two ways of accomplishing this task:
Algorithm: A detailed description of the sequence of steps to be followed.
Flowchart: A pictorial representation of the program, which is easier to visualize due to its graphical organization.
Testing and Debugging: A computer program seldom runs perfectly for the first time due to the possible presence of logical and/or syntactic errors. These errors are referred as bugs. The process of removing these bugs is called debugging. The errors in the program are checked by testing it at various stages.
Use of Test Data: Test data should be prepared in such a way that the programs run by using this data. It should be prepared so as to include all the conditions that the program is expected to test.
Use of Diagnostic Tools: There are diagnostic aids, which programmers may deploy to detect errors when a program fails to run correctly. The diagnostic procedures may vary from one language to another. The diagnostic tools provide, in general, a method for testing the execution of a program at each step or each time the program follows a particular path. Breakpoints may also be used in code for debugging purposes.
Installation: The tested software is installed at the client end and finally tested with real-time data.