Life cycles in software developement
Life cycles in software developement help us understand the general concept of how a software is (or should be) created, these processes of software development were created to facilitate its implementation based on requirements given or thought at the very start.
Currently there are many types of software life cycle, although they have similar phases, these are sorted in different order and some may repeat, this variety is made not because one cycle is better than the other, but to have a variety of options when it comes to creating a program, because not all of them will be able to accommodate with just one type of life cycle.
Lyfe Cycle Models:
Waterfall model is a linear type of model. It is used mainly in software where it cannot afford major changes during testing or changing its focus. The name is given because the phases shown cascade one after the other, separating entirely one phase with the other. This model is pretty straight-forward but not flexible, which can be a huge disadvantage to some projects.
Prototyping model concentrates in making prototypes, as its name suggests. These prototypes are not a complete version of the final software; instead they focus on prototyping a specific part of it, one by one, and so the complete version of the software will eventually be made. This model is good to receive a lot of feedback, since you can have something to show to the client. The downside is that the time invested in making the prototype is significantly larger than other models.
Spiral method model
The spiral model is more of a combination between prototyping and waterfall models. It works by executing the waterfall model but in a smaller scale, just for one part of the software, this is so at the end of the cycle you have time to observe for improvements, make simulations and determine the next plan of action. This process will be repeated a multiple number of times until the software is completed. This model is preferred when creating a large or complicated project.
Iterative model is basically a waterfall model but it’s trying to remove the biggest flaw present on it. This model tries to overlap the waterfall model’s phases, this giving opportunity to correct stuff from the previous phase while working on the current one. Also, the model tries to do the overlapping waterfall model multiple times, just like spiral model. The difference is that testing is not as deep as the spiral model. You want to use this model when you want to present quick results to the client, and problems within the project are detected easier.
Agile development model
Agile model is created to try and adapt quickly to major changes in requirements. As its name suggests, agile model tries to get the best version of the software while trying to be the quickest. Agile model decomposes requirements into really small parts and developing around them. This gives the advantage to get feedback from the user really quickly, and opens the opportunity for a lot of flexibility.