Specification and verification of object oriented software components