requirements document | contains functional and non-functional requirements | |
has definition Any document describing a set of requirements | |
depends on | |
forms the basis for testing the system | |
goes through several iterations of development and review | |
has version number | |
has parts a clear title, and sections with meaningful headings and subheadings | |
has part functional requirements | |
has part non-functional requirements | |
is definitive only when all the stakeholders agree they are to be implemented | |
is a subtopic of 4.7 - Types of Requirements Document | |
is subject to change caused by: | |
is a kind of document | |
must be written at a high-enough level so that the potential users can read it | |
must not be too large at an early stage in requirements gathering because the risk that these will have to be completely re-written is too great | |
should be sufficiently complete | |
should be well designed so its structure can be easily understood, so it can be quickly scanned and so any given requirement can be easily found | |
should be well organized | |
should be agreed to by all the stakeholders | |
should be reviewed by the author and stakeholders | |
should be updated when incremental changes are made to the system | |
should contain rationale for all requirements that involve a large amount of analysis, that are controversial or for which several alternatives are considered, so that software engineers in the future do not have to repeat your analysis when they make changes, the reader is convinced that you did in fact consider the alternatives, and the reader is alerted to the fact that the requirement may be controversial | |
should have sections - Problem: A succinct description of the problem the system is solving
- Background information: information that will help readers understand the requirements. It should contain references to domain analysis documents
- Environment and system models: the context in which the system runs and a global overview of the system or subsystem
- Functional Requirements: Services provided to the user and to other systems
- Non-functional requirements: any constraints that must be imposed on the design of the system
| |
should have changes in each new version highlighted for the reader using change bars | |
should not contain requirements in the introduction and conclusion to avoid the problem of changing the requirements in one place and forgetting to change them in another place | |
document | should be written for a particular audience | |