1. Waterfall Model1. Waterfall Model •Waterfall is the oldest and most straightforward of the structured SDLC methodologies. •There are strict phases and each phase needs to be completed first before going to the next phase. There is no going back. •Each phase relies on information from the previous stage and has its own project plan. •Waterfall is easy to understand and simple to manage. • However, it is usually prone to delays as each phase needs to be reviewed and fully signed off before the next phase can begin.
Slide3•Also, since there is little room for revisions once a stage is completed, problems can’t be fixed until you get to the maintenance stage. •This model works best when all requirements are known and flexibility is not required and the project has a fixed timeline. •One disadvantage of waterfall model is that all requirements need to be known before development starts. •Therefore if a requirement is wrong or missing, it won’t become apparent until the late stages of the life cycle.
2. V Model2. V Model •V Model which is also known as the Verification and Validation model, was the next logical step from the Waterfall model with the aim of introducing testing at each stage of development rather than at the end of the project. •Like Waterfall, each stage begins only after the previous one has ended. •This model is useful when there are no unknown requirements, as it’s still difficult to go back and make changes.
Slide5•The advantage of V Model is that each stage has a corresponding testing activity which helps to identify missing requirements, and incorrect design early in the life cycle. •The disadvantage is that the each stage has to wait for the previous stage to be finalized and signed off.
3. Iterative Model3. Iterative Model •With the Iterative model, software is built in small chunks, each time adding more functionality. •Unlike the waterfall model which requires fully specified requirements before starting the implementation, with the Iterative model, you implement a small set of software requirements, then test, evaluate and refine the requirements. •With each iteration, new requirements are added and a new version of the software is produced. •This process is repeated until the application is fully developed and all requirements implemented.
Slide7İterative-model •One advantage of Iterative model over the other SDLC methodologies is that we get a working version of the application early in the process and so it less expensive to implement changes. •One disadvantage is that resources can quickly be eaten up by repeating the process again and again.
4. Spiral Model4. Spiral Model •One of the most flexible SDLC methodologies, the Spiral model takes ideas from the Iterative model and its repetition but also combined with the structured and systematic development of the waterfall model with a heavy emphasis on risk analysis. •The project passes through four phases (identification, design, build, evaluation and risk analysis) over and over in a “spiral” until completed, allowing for multiple rounds of refinement. •It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral.
Slide10Spiral Model •This model allows for the building of a highly customized product, and user feedback can be incorporated from early on in the project. •But the risk you run is creating a never-ending spiral for a project that goes on and on.
5. Agile Model5. Agile Model •The agile model is a combination of both iterative and incremental model by breaking a product into components where on each cycle or iteration, a working model of a component is delivered. •The model produces ongoing releases (iterative), each time adding small changes to the previous release (iterative). •During each iteration, as the product is being built, it is also tested to ensure that at the end of the iteration the product is shippable.
Slide12Agile Model •The Agile model emphasizes collaboration, as the customers, developers and testers work together throughout the project. •An advantage of the Agile model is that it quickly delivers a working product and is considered a very realistic development approach. •One disadvantage of this model is that because it depends heavily on customer interaction, the project can head the wrong way if the customer is not clear about the requirements or the direction he or she wants to go.
6. DevOps Model6. DevOps Model •DevOps is one of the newest SDLC methodologies and is being adopted by many software companies and IT organizations. •As its name suggests, the premise of DevOps is to bring development teams together with operational teams in order to streamline delivery and support. •The advantages of such an approach are that changes become more fluid, while organizational risk is reduced. •Teams must have flexible resources in order for a DevOps arrangement to succeed.
Slide14DevOps Model •The following are some of the DevOps principles: •Create production like systems for development and testing environment •Deployments need to iterative and frequent. Ensure a reliable and repeatable process •Continuously monitor and validate operational quality characteristics •Amplify feedback loop
7. Lean Model7. Lean Model •Lean Development focuses on the creation of change-tolerant software. This methodology embodies the notion of dynamic stability which can be thought of as similar to how Scrum embraces controlled chaos. • Bob Charette, the originator, writes that the measurable goal of LD is to build software with one-third the human effort, one-third the development hours and one-third the investment as compared to what SEI (Software Engineering Institute) CMM Level 3 organization would achieve.
Slide16•There are 12 principles of Lean Development: •Satisfying the customer is the highest priority. •Always provide the best value for the money. •Success depends on active customer participation. •Every LD project is a team effort. •Everything is changeable. •Domain, not point, solutions. •Complete, don't construct. •An 80 percent solution today instead of 100 percent solution tomorrow. •Minimalism is essential. •Needs determine technology. •Product growth is feature growth, not size growth. •Never push LD beyond its limits.
8. Prototyping Model8. Prototyping Model •The goal of prototyping based development is to counter the first two limitations of the waterfall model discussed earlier. •The basic idea here is that instead of freezing the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements. •This prototype is developed based on the currently known requirements. • Development of the prototype obviously undergoes design, coding and testing. But each of these phases is not done very formally or thoroughly. • By using this prototype, the client can get an "actual feel" of the system, since the interactions with prototype can enable the client to better understand the requirements of the desired system.
Slide18•Prototyping is an attractive idea for complicated and large systems for which there is no manual process or existing system to help determining the requirements. •In such situations letting the client "plan" with the prototype provides invaluable and intangible inputs which helps in determining the requirements for the system. •It is also an effective method to demonstrate the feasibility of a certain approach. •This might be needed for novel systems where it is not clear that constraints can be met or that algorithms can be developed to implement the requirements. • The process model of the prototyping approach is shown in the figure.