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.