A contract expresses the mutual obligations in between parts of a program that cooperate about the solution of some problem