General Approach 1
Linear or Phased Approaches 1
V Model 4
Incremental Development 6
Iterative Approaches 8
Microsoft Solutions Framework 11
Rationale Unified Process 13
Agile Approaches 15
Rapid Application Development 15
Extreme Programming 18
Regardless of the time an activity takes whether they are done simultaneously or in long planned phases fraught with documentation and approvals, the SDLC must answer certain questions about the product being developed.
What is the business problem being solved? Concept phase.
What is the solution to that problem? Requirements
How are we going to affect the solution? Logical Design
What are the elements of that solution? Physical design and coding
How do we know our solution is right? Unit, integration and system testing
How do we know we have the right solution? Acceptance testing
Will it work in the environment with the actual users? Implementation
Each of the life cycle models includes activities, tasks, or phases that answer these questions, although not necessarily in the direct format given above.
Linear or Phased Approaches
While the Waterfall Model presents a straightforward view of the software life cycle, this view is only appropriate for certain classes of software development. Specifically, the Waterfall Model works well when the software requirements are well understood (e.g., software such as compilers or operating systems) and the nature of the software development involves contractual agreements. The Waterfall Model is a natural fit for contract-based software development since this model is document driven; that is, many of the products such as the requirements specification and the design are documents. These documents then become the basis for the software development contract.
There have been many waterfall variations