>>94
Using clean room development style on your pseudo code and actual code after these designs have been done is all I feel you require.
This may be fine for dinky little software or if you are the only coder that will look at the code. This is woefully inadequate if other programmers are supposed to comprehend anything more than a trivial section of the software.
Why all this work? It's all about documentation, it should be complete, relevant and up to date. It's all about making your codebase easy to follow and maintain. The abstract logic allows people that are unfamiliar with the system to focus on different parts of the system design (input/output, system entites, data storage, system processes) without having to assault their minds with irrelevant implementation details.