SDLC Models

What is SDLC Model?
A Framework containing the processes, activities and tasks involved in the development, operation and maintenance of a software project spanning the life of the System from the definition of its requirements to the termination of its use.


Types of SDLC Models:
  1. Waterfall Model
  2. Spiral Model
  3. Prototype Model
  4. Rapid Application Development Model
  5. Iterative and Incremental Development Model
  6. Agile Model

1. Waterfall Model


  • Also known as Classic Life Cycle Model and Linear Sequential Model 
  • This model suggest a systematic and sequential approach to software development that begins at requirements analysis and progresses through all life cycle phases sequentially.
  • Development activities carried out sequentially
  • Review and approval of each phases outputs (Deliverables)
  • Model does not permit going back and forth
  • If any defects found, go back to the originating phase and start traversing sequentially all over again
Suitable for Projects where:
  • Requirements are clearly defined
  • Small and medium term duration
  • Familiarity with the domain and development environments

2. Spiral Model

  • The spiral model is a risk-driven process model generator for software projects. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping
  • In a spiral model, software is developed in a series of increments releases.
  • Suitable for large projects with multi-location implementation
  • Each spiral consists of a deliverables product
  • Customer can start using the system after every spiral
  • Feedback of each spiral is incorporated in the next spiral
  • Each spiral consist of a waterfall model
Advantages:
  • Useful for large projects
  •  Customer requirements change over a period of time
  •  Early availability of usable system

3. Prototype Model
  • Identify basics requirement  – A prototype is developed based on the initial understanding of the customer requirements
  •  Develop Initial Prototype – The initial prototype is developed that includes only User Interface
  •  Review  – The Customer including end-users examine the prototype and provide feedback on addition and changes
  •  Review and enhance the prototype  – Using the feedback both the specification and the prototype can be improved
Advantages:
  • A visible working prototype helps customer to define the requirements
  • Can be used when customer is not sure about what he wants
  • Faster way to finalizing the requirements
  • Useful for new technologies and domains
  • Useful for Product development

4. Rapid Application Development Model
  • RAD enables creation of fully functional Software within a very short time
  •  If the requirements are well understood and define and the project scope is constraint the RAD process enables a development teams to create a fully Functional System within very short time period.

5. Iterative and Incremental Development Model
  • The basic idea behind Iterative Model is to develop Software System incrementally
  •  At each iteration design modification are made along with adding new functional capabilities
  •  In a Incremental Development Model the system is developed in different stages with each stage consisting of requirements, design Implementation Testing Evaluation. In each stage new Functionality is added.
  •  This type of development allows the user to see a Functional Product very quickly and allows the users to impact what changes are included in the subsequent releases.

6. Agile Model
  •  In Agile Model product is divided into various Sprints
  •  Each Sprint contains highest priority Features (Requirements)
  •  A time period of Sprint is typically 2-4 weeks
  •  In Agile Model daily Scrum meeting with team to share status and potential issues
  •  Each Sprint is release to customers
  •  Used for time-critical applications