SOFTWARE DESIGN AND DEVELOPMENT
Successful computer software is produced in a sequence of stages that are typically managed by separate teams of developers. These stages are illustrated in Figure 1.1.
The first stage is a recognition of the problem to be solved. In a corporate setting, this determination could come from market research.
The second stage, which might be omitted as a formal process, is a study of whether the project is feasible. For example, do the development tools exist to produce the software?
In the third stage, a document is typically produced that specifies precisely what the software should do. This requirements document should have enough detail to be used as a
standard when the completed software is tested.
In the fourth stage, a thorough analysis is done before any effort or resources are spent designing and implementing the project.
This could include a survey of comparable software already available and a cost-benefit analysis of the value of spending the anticipated resources.
Once a decision has been made to proceed, the software design team works from the requirements document to design the software.
This includes the specification of all the software components and their interrelationships. It may also require the specification of specialized algorithms that would be implemented in the software.
The implementation consists of programmers coding the design to produce the software.
The testing team attempts to ensure that the resulting software satisfies the requirements document.
Failure at this point may require a redesign or even some fine-tuning of the requirements.
Those eventualities are represented by the two feedback loops shown in Figure 1.1.