design by contract

see Ch. 3, Contracts