Requirements engineering
Use the following to guide your reading from Chapter 4: Requirements engineering in Software Engineering (Sommerville 2016):
- What is the distinction between user requirements and system
requirements?
- Who generates user requirements?
- What is the purpose of user requirements?
- Why is it important that user requirements provide the “what” but not the “how”?
- Who generates system requirements?
- What is the purpose of system requirements?
- What is the purpose of a feasibility study?
- What is the distinction between functional requirements and
non-functional requirements?
- What is the purpose of a functional requirement?
- What types of things do functional requirements describe?
- What is the purpose of a non-functional requirement?
- What types of things do non-functional requirements describe?
- When should requirements be high-level and abstract versus low-level and very precise?
- What is the content, purpose, and use of a requirements specification
document?
- List typical contents of a requirements specification.
- What groups use a requirements specification and for what purposes?
- How is the level of detail and formality needed for a requirements specification dependent upon the domain, type of software, development team, size of the system, contracts, and the software process being used?
- Define the following terms in the context of a requirements document:
- validity
- consistency
- completeness
- realism
- verifiability
- What are techniques used for requirements validation?
- Devise Requirements Management processes to support identification, change, and traceability with appropriate tool support.
- Why do requirements for a software system change?
- What is traceability?