Describir: Assertion-Based Design