1. (a) Discuss the three (3) software process models into details using appropriate
diagrams/illustrations. [20 marks]
Answer
1. Waterfall Model
The waterfall model is a sequential, plan driven-process where you must plan and schedule all
your activities before starting the project. Each activity in the waterfall model is represented as
a separate phase arranged in linear order It has the following phases:
• Requirements
• Design
• Implementation
• Testing
• Deployment
• Maintenance
Each of these phases produces one or more documents that need to be approved before the
next phase begins. However, in practice, these phases are very likely to overlap and may feed
information to one another. The waterfall model is easy to understand and follow. It doesn’t
require a lot of customer involvement after the specification is done. Since it’s inflexible, it can’t
adapt to changes. There is no way to see or try the software until the last phase. The waterfall
model has a rigid structure, so it should be used in cases where the requirements are
understood completely and unlikely to radically change.
, 2. Iterative Model
The iterative development model develops a system through building small portions of all the
features. This helps to meet initial scope quickly and release it for feedback.
In the iterative model, you start off by implementing a small set of the software requirements.
These are then enhanced iteratively in the evolving versions until the system is completed. This
process model starts with part of the software, which is then implemented and reviewed to
identify further requirements.
3. Incremental Model
The incremental model divides the system’s functionality into small increments that are
delivered one after the other in quick succession. The most important functionality is
implemented in the initial increments. The subsequent increments expand on the previous
ones until everything has been updated and implemented. Incremental development is based
on developing an initial implementation, exposing it to user feedback, and evolving it through
new versions. The process’ activities are interwoven by feedback. The incremental model lets
stakeholders and developers see results with the first increment. If the stakeholders don’t like
anything, everyone finds out a lot sooner. It is efficient as the developers only focus on what is
important and bugs are fixed as they arise, but you need a clear and complete definition of the
whole system before you start.The incremental model is great for projects that have loosely-
coupled parts and projects with complete and clear requirements.