Specifications

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.