This report, written by Ashwini Mujumdar, Gayatri Masiwal, and P.M. Chawan, “conducts an analysis of various software development approaches,” explaining the models and the differences between them. Notably, the paper looks at sequential, incremental, evolutionary, specialized, and agile approaches, with specific examples for each.
The Grandfather: Waterfall Model
The paper begins with the waterfall model:
The waterfall model is the classical model of software engineering. This model is one of the oldest models and is widely used in government projects and in major companies. As this model emphasizes planning in early stages, it ensures design flaws before they develop. In addition, its intensive document and planning make it work well for projects in which quality control is a major concern.
The pure waterfall lifecycle consists of several non-overlapping stages…the model begins with establishing system requirements and software requirements and continues with architectural design, detailed design, coding, testing, and maintenance. The waterfall model serves as a baseline for many other lifecycle models.
Different Models For Different Needs
As explained earlier in the paper, each model after waterfall builds from it, but is modified to reflect a greater understanding of the process or a specific need. The spiral model takes risk analysis into account more often, for instance, whereas the formal methods model enable a software engineer to specify and develop a computer based system through mathematical notation.
The paper then ends with a basic chart to help show the differences found in each model in regards to requirement specifications, cost, resource control, simplicity, risk analysis, user involvement, flexibility, and reusability.
Click for full PDF: http://www.ijera.com/papers/Vol2_issue3/MA2320152021.pdf