Design by Contract based on annotations