The specification is a document that describes the behavior of the software system to be built. It contains the requirements model and the domain model. The requirements model includes functional requirements (capabilities) and non-functional requirements (constraints).
Functional requirements are often described with UML use case and sequence diagrams.
Non-functional requirements include:
Usability
�� Impedence mismatch with
existing workflows
�� UI conventions
�� online help
�� documentation
Reliability
�� mean-time between
failures
�� fault tolerance/robustness
�� safety
Performance
�� Response time
�� Throughput
�� Availability
�� Accuracy
Supportability
�� How easy will it be to add new features? fix bugs?
There are several standard specification documents including the Requirements Analysis Document.