Background: We are developing software for a small house-hold robot. Its probably not highly dangerous but it could still cause someone to fall down stairs. We are using a waterfall-like model.
Now by validation I mean answering the question: 'Did we understand correctly what our code has to do?' and not 'How to test against the requirements spec?'
In a non-safety-critical code I would build a prototype, have customer/users try it out and see if they like it. However, for safety-critical code this does not work, because it does not prove that the customer didn't forget something.
We already brainstormed possible scenarios for accidents with the customer and made sure we have requirements against what we came up with. But a more systematic approach would give us much more confidence.
Also we would like to be able to do the validation for later stages than just the requirements.