Software Requirements: Objects, Functions, and States