Modular Specification and Verification of Object-Oriented Programs