functional requirements | contains - What inputs the system should accept, and under what conditions
- What outputs the system should produce, and under what conditions
- What data the system should store that other systems might use
- What computations the system should perform
- The timing and synchronization of the above
| |
do not describe particular algorithms to be used | |
includes | |
is a subtopic of 4.5 - Types of Requirements | |
is a kind of requirements document | |
requirements document | 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 subject to change caused by: | |
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 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 | |
document | should be written for a particular audience | |