Design by Contract

  • formal basis -- pre and post conditions
  • refinement -- by inheritance or polymorphism
  • runtime checks -- division of responsibility

see Ch. 3, Contracts


slide: Design by Contract