Design by Contract
Design by Contract Advanced Software Tools Seminar Alexander Freidin 2006 Defining Contracts on Method Call Sequences.