COMPUTING SCIENCE 220
Software Engineering and Human-Computer Interfaces
Requirements
- Requirements
- capabilities and conditions to which the system/project must conform.
UP best practice: manage requirements
- "a systematic approach to finding, documenting, organizing, and tracking the changing requirements of a system" [RUP]
- changing requirements is a driver of the project
- on average, 25% of requirements change on software projects
Requirements elicitation techniques
- use case writing
- requirements workshops (including developers and customers)
- focus groups
- demos to customers at end of each iteration
XP requires a full-time customer-expert in the project room for continuous requirements elicitation.
FURPS+ Model
- Usability
- Reliability
- Performance
- Supportability
|
Non-functional or quality attributes / requirements ("-ilities") |
- +
- Implementation
- Interface
- Operations
- Packaging
- Legal
Artifacts
- Functional requirements
- Use-Case Model
- Vision (system features list)
- Non-functional requirements
- related use cases
- Supplementary Specification
- Vision (high-level requirements)
- Glossary
- terms used in requirements
- data dictionary (validation rules, acceptable values)
- Business Rules (Domain Rules)