A program may result from some problem, in this case problem means some task requiring a solution, or from a bright idea, or because it is a project which has been set for student. No matter what their first causes computer programs, aka software, and software systems, collections of softwares, have quite well-defined life cycles. The need for a program is recognised, the requirements are analysed, a possible solution is designed, the prototype is built and tested, and finally the program is put into use. Figure 1 shows the typical life-cycle for a computer program.
During phase one the emphasis is on fact-gathering and determining where the boundaries of the problem are.
Phase two involves the steps of identifying the variables and processes which make up the problem.
Phase 3 is where you will use the tools and techniques that you learn in this module. During this phase the strategies which will solve the problem are developed.
Phase 4 represents the time when the solution to the problem, the programs or system, is constructed.
Phase 5 is a critical time but can be minimised if the previous steps are correct.
Phase 6, the maintenance phase, is the time when the solution is in active use. It may undergo enhancements or it may have bugs fixed during its lifetime.
There is a strong connection between phases 2 and 3 since the process of designing a solution to a problem is an iterative process and often involves a great deal of discovery. For example as you refine an algorithm you might discover that there are variables and/or processes that weren't obvious during phase 2. This is to be expected, after all you are just learning about this kind of thing, but you can expect to meet this kind of discovery right throughout your life as a program designer.
Variables and Processes
The terms variables and processes have been mentioned a couple of times and were also featured in a previous lesson. In won't hurt to review what these