Nearly any book that discusses the software development process will list the following general phases as necessary for a successful result:
Definition of requirements
Analysis of requirements
Evaluation of requirements
Development of the design
Implementation and testing
Maintenance
These are not clearly delineated steps; in most cases, they overlap, and one phase is not necessarily completed before another begins. Once the project is under way, you could be performing maintenance in one area and evaluating requirements in another. For the sake of discussion, we will look at them in their logical sequence as you begin a new project.