What is Requirements Specification?
It is the third phase of the Requirements Engineering lifecycle, after Requirements Capture and Analysis. It is also known as Requirements Documentation. The goal is to create a document, or Requirements Specification, with the corresponding level of detail.
What does a Requirements Specification need to have?
This document shall have a complete description of the behavior of the software or system to be built. This description should not only contain the functional aspects of the system, but also any constraint or restriction regarding security, performance, interface, etc. described through non-functional requirements.
Requirements Specification Techniques and Language
It is possible to document requirements using formal methods such as mathematical specifications, graphical notations or modeling languages. However, in most cases more informal or semi-formal languages are used such as natural language and flow diagrams.
Either way, requirements must be described in a language understandable by those who need to work with them, including the users. This will highly influence the techniques used to document them.