Contract-Based Design: Theories and Applications