In this current era of software development, a large number of life cycle models are available for the systematic development of computer software and projects. SDLC models give a theoretical guide line regarding development of the software. SDLC models are very important for developing the software in a systematic manner such that it will be delivered within the time deadline and should also have proper quality. These models have their own unique characteristics and are suited to a particular situation of software development and software types. One software life cycle model may prove to be more efficient than the other one depending upon the development environment. In this paper, the work has been done to analyze the various software life cycle models from this aspect. Selecting proper SDLC allows the project managers to regulate whole development strategy of the software. Each SDLC has its advantages and disadvantages according to which we decide which model should be implemented under which circumstances. In this paper we will present a comprehensive study of different life cycle models likewaterfall model, rapid application development (RAD), prototype model, spiral model, incremental model and extreme programming (XP) .
Software development life cycle (SDLC), is a way of developing the software in a smooth manner. SDLC also increases the probability of completing the software project within the time deadline and maintaining the quality of the software product as per the requirement. The System Development Life Cycle framework provides a sequence of activities for system designers and developers to follow for developing software. It is often considered as a part of system development life cycle. The software development process is divided into phases that allow a software organization to organize its work. All software projects go through the phases of requirements gathering, business analysis, system design, implementation, and quality assurance testing. Employing any SDLC model is often a matter of personal choice entirely dependent on the developer. Each SDLC has its strengths and weaknesses, and each SDLC may provide better functionalities in different situations. Jovanovich D. et al.  presented basic principles and comparison of software development models. Rodriguez-Martinez et al. 
focused on lifecycles frameworks models and detailed software development life cycles process and reports the results of a comparative study of Software development life cycles. One life cycle model theoretically may suite particular conditions and at the same time other model may also look fitting into the requirements but one should consider trade-off while deciding which model to choose . Davis A.M. et al.  provided a framework that can serve as a basis for analyzing the similarities and differences among alternate life-cycle models as a tool for software engineering researchers to help describe the probable impacts of a life-cycle model and as a means to help software practitioners decide on an appropriate lifecycle model to utilize on a particular project or in a particular application area. A software development life cycle model is broken down into distinct activities and specifies how these activities are organized in the entire software development effort. In this paper a thorough study of the different life cycle models has been presented and on the basis of that a suitability analysis of different types of models for various projects has been done.
II. PHASES INVOLVED IN SDLC MODEL
The phases involved in software development life cycle model are
1. Requirements gathering.
2. Requirement analysis
3. high level design
4. low level design
7. Deployment & maintenance.
Each of the basic activities itself may be so large that it cannot be handled in single step and must be broken into smaller steps. For example, design of a large software system is always broken into multiple, distinct design phases, starting from a very high level design specifying only the components in the system to a detailed design where the logic of the components is specified.
III. SOFTWARE DEVELOPMENT LIFE CYCLE MODELS
Waterfall model was proposed by Royce in 1970 which is a linear sequential software development life cycle (SDLC) model. The various phases followed are requirements analysis, design, coding, testing and implementation in such a manner that the phase once over is not repeated again and the development does not move to next phase until and unless the previous phase is completely completed. Hence it is not very much useful when the project requirements are dynamic in nature.
1. Easy to understand, easy to use.
2. Provides structure to inexperienced staff.
3. Milestones are well understood.
4. Sets requirements stability.
5. Good for management control (plan, staff, track).
6. Works well when quality is more important than cost or schedule.
1. All requirements must be known upfront
2. Deliverables created for each phase are considered frozen – inhibits flexibility
3. Can give a false impression of progress
4. Integration is done in one big bang manner at the end
5. Little opportunity for customer to preview the system (until it may be too late).
Spiral model adds risk analysis and 4gl RAD prototyping to the waterfall model. Each cycle involves the same sequence of steps as the waterfall process model.
Objectives: functionality, performance, hardware/ software interface, critical success factors, etc. Alternatives: build, reuse, buy, sub-contract, etc. Constraints: cost, schedule, interface, etc. Study alternatives relative to objectives and constraints. Identify risks (lack of experience, new technology, tight schedules, poor process, etc. Resolve risks (evaluate if money could be lost by continuing system development. In develop next-level product the typical activities are Create a design, Review design, Develop code, Inspect code,Test product. In plan next phase the typical activities are Develop project plan, Develop configuration management plan, Develop a test plan, Develop an installation plan.
Spiral Model Strengths
1. Provides early indication of insurmountable risks, without much cost
2. Users see the system early because of rapid prototyping tools
3. Critical high-risk functions are developed first
4. The design does not have to be perfect
5. Users can be closely tied to all lifecycle steps
6. Early and frequent feedback from users
Spiral Model Weaknesses
1. Time spent for evaluating risks is too large for small or low-risk projects
2. The model is complex
3. Risk assessment expertise is required
4. Spiral may continue indefinitely
5. Developers must be reassigned during nondevelopment phase activities
Phases of RAD are Requirements planning phase, User description phase, Construction phase, Cutover phase. If requirements are well understood and project scope is constrained, the Rapid application development (RAD) figure 4 process enables a development team to create a “fully functional system” within very short time periods (e.g., 60 to 90 days).
1. Reduced cycle time and improved productivity with fewer people means lower costs
2. Time-box approach mitigates cost and schedule risk
3. Customer’s involvement throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs
4. Uses modeling concepts to capture information about business, data, and processes.
1. Risk of never achieving closure
2. Hard to use with legacy systems
3. Requires a system that can be modularized
4. Developers and customers must be committed to rapidfire activities in an abbreviated time frame.
RAD can be implemented in projects for which time line is aggressive, risk is not so high and the size of the project is Small or medium. RAD can prove to be very effective for projects with time limit between 60 to 90 days.