A life cycle model prescribes the different activities while developing a software product. The software life cycle is also referred to as Systems Development Life Cycle.
(I) Classical Water fall model : This is considered the theoretical way of making a software, practically it is not possible to follow this model for a successful build. Phases include :

(a) feasibility check : ensuring that it is financially and technically feasible to develop the product.
(b). Requirement and specifications : gathering and analysis of needs leads to Software Requirements Specification(SRS) document. This doc mainly covers : functional, non-functional and goals of the implementation. Each function can be characterized by input data, processing required and output data to be produced. The non-functional requirements identify the performance requirements.
(c). Design : Structured analysis involves preparing detailed analysis of the different functions to be supported by the system and identification of the data flow among functions. Data Flow Diagrams are used to perform structural analysis and to document the results. High level design involves decomposition of systems into modules, and representing the interfaces and the invocation relationship among the modules.
d). code and unit test : translation of software design into source code. Unit Testing is the way to determine the correct working of individual modules.
e). Maintenance
This model considers the transition between two phases like a waterfall . Once a phase is complete it is assumed that it is flawlessly done and wont need further tweeking.
(II) Iterative Waterfall model : this is a improvement over the waterfall model with the possible to tweak previous stages but no feedback path to the feasibility stage and the other short coming being new phase starts only after completion of the previous stage.

Though errors are inevitable it is desirable to detect these errors in the same phase in which they occur.
(III) Prototyping model: After requirement gathering make a quick design and build a prototype followed by customer evaluation of it, one incorporates the customer inputs and starts over again. Hence this can be a valuable mechanism for gaining better understanding of the customers need. The prototype helps building the GUI to a large extent.

(IV) Evolutionary model: A simple working system is built which further undergoes many functionality improvements and additions until desired state is achieved. The software requirement is broken into several modules(or functional units) that can be incrementally constructed and delivered . First develops the core modules. The core modules are those that do not need services from others. This model is useful for large projects where one can identify modules for incremental implementation.

(V) Spiral Model : Each loop of spiral is called as phase of the software process. Over each loop one or more features of the product are analyzed and the risks at that point of time are identified and are resolved through prototyping.

(VI) Agile Model : one has a prioritized Feature list , which are built with iterative process, followed by {plan and develop ,Evaluate and learn} to finally get a new functionality.

Conclusion : Different life cycle models have their own advantages and disadvantages, hence an appropriate life cycle model is to be chosen for the problem at hand. After which software development organization tailor the std. model according to their needs.