This is the context in which, typically, a pure
waterfall process will work well. Why? Well, because it's a
context in which requirements are usually well understood. The
domain is well understood, so that kind of system has
been built many times before. And also, it's a
system in which we don't expect requirements to change dramatically
over time. Therefore, a waterfall model, in which we collect
all the requirements at the beginning and then we move
to the subsequent phases might be the most appropriate one. Probably
we don't want to do evolutionary prototyping in the case of
the control system for an airplane. Same thing holds for TDD,
so we want to be a little more rigorous in those cases.