Design by Contract, Preconditions, Postconditions, Runtime Assertions