Specifications or conditions that describe what a product or system must achieve or how it should behave to meet the needs or expectations of its stakeholders
Types of requirements
Functional requirements
Non-functional requirements
Functional requirements
Specific features and functions that a system must provide
Use cases
Describe the interactions between an actor (usually a user or system) and a system to achieve a specific goal
User stories
Concise, informal descriptions of a software feature or requirement from an end-user perspective
Detailed specifications
Comprehensive documentation of the system's functional requirements, including precise descriptions of inputs, outputs, data processing, error handling, and other aspects of system behavior
Non-functional requirements
Define the qualities, characteristics, or constraints that govern the operation, performance, and usability of a system
Non-functional requirements
Performance
Reliability
Security
Usability
Scalability
Other types of requirements
Business requirements
User requirements
System requirements
Data gathering techniques
Surveys and questionnaires
Interviews
Observation
Experiments
Focus groups and workshops
Document analysis
Data mining
Sensor data collection
Social media analysis
Naturalistic observation
Structured analysis
A technique used during the system development process to understand, document, and analyze the requirements of a system
Structured analysis tools
Data flow diagrams (DFDs)
Data dictionary
Decision tables
Decision trees
Structured English
Structured analysis models
Visual representations of the system being analyzed, such as data flow diagrams (DFDs) and entity-relationship diagrams (ERDs)