Today I came across the following short note on Leslie Lamport's site:
State the Problem Before Describing the Solution, Leslie. Lamport, ACM SIGSOFT Software Engineering Notes 3, 1 (January 1978) 26
The idea is that, when writing a paper, you should precisely state the correctness requirements for any solution before you present your proposed solution. Lamport points out that this idea can also be used when writing programs. The separation of the requirements from the solution is similar to Michael Jackson's insistence that requirements be written in terms of domain concepts rather than solution concepts.