Abstract behavioral specification: unifying modeling and programming