Specification And Runtime Monitoring Of Object-Oriented Systems