Analysis: This is the start of the software development process and defines the extent of the software task. This is called the software specification. It is often basis of a legal contract between the client
(customer) and the software company writing the software.
Design: The design process is vital. At this stage, the developer works out the steps of the program, including the refinements (that will become modules) and how data will be scoped and passed between
modules. It will also be necessary to design a test plan, working out what the program would be expected to output for a given set of inputs.
Implementation: The stage at which the program is developed.
Testing: Ensuring that the program returns the expected outputs for given inputs, based on the test plan produced at the design stage.
Evaluation: An objective review of the software to establish whether it meets the criteria identified in the software specification.