A Software Requirements Specification is strictly the set of all relevant software requirements for a project.
This set provides a complete and consistent abstract description of the solution to the problem represented by a
stakeholder specification or a similar artifact, and its context, at an appropriate level of abstraction.
In practice, there may be several levels of Software Requirements Specification - for example, in some cases
the a single level might be enough, in others, the system must be broken-down into subsystems at various levels.
If more than one level of Software Requirement Specification is used, then remember the following points:
-
Each specification must be a complete and consistent description of the solution, at an appropriate level of
abstraction
-
Traceability must be maintained throughout the levels
-
All specifications must be maintained in parallel
Frequently, it is sufficient to evolve a single specification.
This specification captures all of the functional and non-functional requirements in one place so that they may be
analyzed for consistency, completeness and correctness.
Requirements must be clear, unambiguous, testable and complete. They must include all required properties of the
system. Care must be taken not to over-specify (a common problem) by including design measures in the requirements.
|