In this case, I think about the spiral model,
and evolutionary prototyping model will work. Definitely you don't want to
have a pure water from water. Why? Well because it
is very expensive with a pure waterfall model to make
changes during the course of the project, especially changes
that involve requirements. Why? Because we saw that it can
be very expensive. Whereas with the spiral model, we saw
that being iterative, we can actually make correction throughout development.
Similarly, with evolutionary prototyping, we keep evolving our system
based on the customer feedback. And therefore, if something changes,
we will get feedback right away, and we will
be able to adapt. So the key thing here is
that anything that is iterative works better in the
case of changing environments. So, situations in which your requirements,
the situation, the project might change. Whereas waterfall is
more appropriate for situations in which the requirements are stable,
we know the domain, and possibly we also know the technologies involved.