Designs by contracts