Definition: An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development
begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further
requirements. This process is then repeated, producing a new version of the software for each cycle of the model.
Advantages: Generates working software quickly and early during the software life cycle (tutorialspoint,
2018). More flexible – less costly to change scope and requirements.(tutorialspoint, 2018) Easier to test
and debug during a smaller iteration.(tutorialspoint, 2018)
Disadvantages : Each phase of an iteration is rigid and do not overlap each other (tutorialspoint, 2018).
Problems may arise pertaining to system architecture because not all requirements are gathered up
front for the entire software life cycle.(tutorialspoint, 2018)
Scenario: The linear model will be appropriate to use when there are no ambiguous requirements. (tutorialspoint,
2018)A Scenario of this would be the development of an app with its features can be developed about in different
ways either than sticking to one way of going about it
Agile Model
Advantages :Is a very realistic approach to software development. (tutorialspoint, 2018)Promotes teamwork
and cross training. (tutorialspoint, 2018)Functionality can be developed rapidly and demonstrated.
(tutorialspoint, 2018)Resource requirements are minimum.(tutorialspoint, 2018)
Disadvantages: Not suitable for handling complex dependencies. (tutorialspoint, 2018)More risk of
sustainability, maintainability and extensibility. (tutorialspoint, 2018)An overall plan, an agile leader and agile
PM practice is a must without which it will not work.(tutorialspoint, 2018)
Defintion: Agile model is a combination of iterative and incremental process models with focus on process
adaptability and customer satisfaction by rapid delivery of working software product. (tutorialspoint, 2018)Agile
model believes that every project needs to be handled differently and the existing methods need to be tailored
to best suit the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to deliver
specific features for a release.(tutorialspoint, 2018)
Scenario: Agile software engineering embraces a philosophy that encourages customer satisfaction, incremental
software delivery, small project teams and other things (e-Zest, 2018), when developing an application or even a
video game with different features, different teams work on different parts of the application but due to
customers being the ones using the software, relying on their opinion and views and where it can be improved
or changed to make the interface or feel of the software better, basically agile model is best use for lots of user
interaction and different features that could be divided into teams to produce software more faster and more
efficient
Iterative Model
Advantages: Results are obtained early and periodically. (tutorialspoint, 2018)Parallel development can be
planned.(tutorialspoint, 2018) Progress can be measured.(tutorialspoint, 2018)
Disadvantages: Not suitable for smaller projects.(tutorialspoint, 2018) Management complexity is more.
(tutorialspoint, 2018) End of project may not be known which is a risk.(tutorialspoint, 2018)
Defintion : The iterative model is a particular implementation of a software development life cycle (SDLC) that
focuses on an initial, simplified implementation, which then progressively gains more complexity and a broader
feature set until the final system is complete. (Powell-Morse, 2016)
Scenario: Requirements of the complete system are clearly defined and understood. (tutorialspoint, 2018)Major
requirements must be defined; however, some functionalities or requested enhancements may evolve with time.
(tutorialspoint, 2018)