Key points
Requirements set out what the system should do and define
constraints on its operation and implementation
Functional requirements set out services the system should
provide
Non-functional requirements constrain the system being
developed or the development process
User requirements are high-level statements of what the system
should do