This document discusses different types of software requirements including functional requirements, non-functional requirements, domain requirements, inverse requirements, and design/implementation constraints. It provides examples of each type and emphasizes the importance of quantifying non-functional requirements using measurable metrics to ensure they are testable. Domain requirements in particular can impose strict constraints on solutions and need to be captured from domain experts.
Related topics: