- High level abstract statement
- Dual function
- bid for contract contract (loose detail)
- May be basis for contract (fine detail)
- "RFP" request for purposal
- User requirements
- statements in natural language
- written for customers
- System requirements
- A structured doc setting out detailed descriptions of the system's functions, services, and contraints
- System elaborates on User
- Any user affect by the system
- Types
- End users
- System manager
- System owners
- External stakeholders
- agile has issue with producting a detailed list
- "requirements doc always out of date"
- Incremental requirements
- Practical for small teams
- not for critical systems
- not for projects at scale
-
Functional requirements
- statements of service
-
Non-functional req
- Constraint of the serivces or function offered by the systems such as timing constraint, or contraints in dev process, standards, etc.
- you must support html5 - pass html5 validator
- Often apply to the system as a whole rather than individual features or serivces
- Deadlines
- Constraint of the serivces or function offered by the systems such as timing constraint, or contraints in dev process, standards, etc.
-
Domain requirements
- contraints on the system
-
NOTE: difference between dev time and exection time
- Python is for dev time
- C++ is for execution time
- Describe functionality or system services
- "You should know exactly what it does"
- "Don't like abiguity"
- high level statements
- Problems arise when functional requirements are not precisely stated
- Ambiguous requirements may be interpreted in different ways by developers and users
- Consider the term 'search'
- user intention
- Dev interpretation