Testing
The implementation needs to be tested against its requirements to ensure that it meets them. Tests will be drawn up based on the requirements, and held in a test document. Notice therefore that tests can be drawn up as soon as you know the requirements.
In fact there is a trend towards test-driven design. In this approach, the tests for a system are drawn up before design and automated testing procedures are set up. An initially empty implementation can be run against the tests and the subsequent failure can be used to drive design. As time goes on, this process is repeated as the implementation is built up, until no tests fail. This is the approach followed by some agile approaches such as XP.