Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

On a page twelve of "Java concurrency in practice" there is a phrase

"A good specification defines invariants constraining an object's state and post - conditions describing the effect of its operation."

More or less I undersand the phrase untill the word "post", then it becomes a garbage.

Can you help please?

share|improve this question
up vote 15 down vote accepted

Perhaps the spacing is confusing. The last part of the sentence should read "post-conditions describing the effect of its operation", or what must be true about the state of the object following the completion of a method call (or any other code block).

Post-conditions, along with preconditions and invariants, are frequently used in design by contract. Having a formal specification does help in understanding concurrency and the side-effects of a method call. It's also useful in establishing test code and assertions.

share|improve this answer
If you're right and this should read as post-conditions, thank you very much! – dhblah Nov 19 '12 at 19:16
He's correct. You should probably accept his answer :) – syrion Nov 19 '12 at 20:58
Also thanks for helping me to understand a meaning of post-conditions. – dhblah Nov 22 '12 at 19:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.