Requirements analysis is part of a larger process -- see our software development "mandala"
Don't forget: this process will take different forms depending on the nature of the job you're doing.
Definition of requirements: a description of the needs that must be met. Anything that drives design; Model of software needs. In general, requirements are what, not how!
Why requirements??
Gotcha's! include "gold plating,", feature creep, misunderstanding!
gathering requirements
be sure you're asking the right people
Process
|
High level description (Understand their situation) |
Modeling (User scenarios; who needs to do what and why?) |
Documenting the requirements; prevent ambiguity and risk. |
Agreement with customer. Sign off. |
What makes for a good requirement? complete, correct, feasible, necessary, prioritized, unambiguous, verifiable
What makes for a good set of requirements? complete, consistent, modifiable, and traceable
Some Examples of Deficient requirements (from Software Requirements, Karl Wiegers, Microsoft Press)
What types of requirements exist?
|
Use Case ID: |
|||
|
Use Case Name: |
|||
|
Created By: |
Last Updated By: |
||
|
Date Created: |
Date Last Updated: |
||
|
Actors: |
|
|
Description: |
|
|
Preconditions: |
|
|
Postconditions: |
|
|
Normal Course: |
|
|
Alternative Courses: |
|
|
Exceptions: |
|
|
Includes: |
|
|
Priority: |
|
|
Frequency of Use: |
|
|
Business Rules |
|
|
Special Requirements: |
|
|
Assumptions: |
|
|
Notes and Issues: |
Revision History
1. Introduction
1.1 Purpose
1.2 Document Conventions
1.3 Intended Audience and Reading Suggestions
1.4 Project Scope
1.5 References
2. Overall Description
2.1 Product Perspective
2.2 Product Functions
2.3 User Classes and Characteristics
2.4 Operating Environment
2.5 Design and Implementation Constraints
2.6 User Documentation
2.7 Assumptions and Dependencies
3. External Interface Requirements
3.1 User Interfaces
3.2 Hardware Interfaces
3.3 Software Interfaces
3.4 Communications Interfaces
4. System Features
4.1 System Feature 1
4.2 System Feature 2 (and so on)
5. Other Nonfunctional Requirements
5.1 Performance Requirements
5.2 Safety Requirements
5.3 Security Requirements
5.4 Software Quality Attributes
6. Other Requirements
Appendix A: Glossary
Appendix B: Analysis Models
Appendix C: To Be Determined List