– A complete description of the software’s purpose and functionality
– Details as to how the software will perform in terms of speed, response time, availability, portability, maintainability, recovery speed and more
– Use cases of how users will use the software
– The definition of how the application with interact with other hardware and program
– Non-functional requirements (e.g: performance engineering requirements, quality standards, or design constraints)