Formal Methods for Components and Objects