Describir: Formal Methods for Components and Objects