Software development is the collective processes involved in creating software programs, embodying all the stages throughout the systems development life cycle (SDLC).
SDLC methodologies support the design of software to meet a business need, the development of software to meet the specified design and the deployment of software to production. A methodology should also support maintenance, although that option may or may not be chosen, depending on the project in question.
The waterfall and similar models are considered predictive methodologies, in contrast to adaptive models such as agile software development (ASD), rapid application development (RAD),
joint application development (JAD), the fountain model, the spiral model, build and fix and Frequently, several models are combined into some sort of hybrid methodology as is the case with open source software development (OSSD).
The waterfall model, the original SDLC method, is linear and sequential, generally following these stages in order:
1. Identification of required software
2. Analysis of the software requirements
3. Detailed specification of the software requirements
4. Software design