Software requirements are categorized into two main types:
1. Functional Requirements: These describe what the system should do. They define specific behaviors or functions of the system, such as The system must allow a user to log in or The system must generate a monthly report.
2. Non-Functional Requirements (NFRs): These describe how the system should perform its functions. They are constraints on the system's behavior and are often called quality attributes. Performance (how fast), reliability (how often it fails), and security (how well it protects against threats) are all classic examples of NFRs.
Therefore, requirements dealing with performance, reliability, and security are Non-Functional Requirements.