The third document, the software requirements specification (SRS), defines what the software component of the product is expected to do, and where necessary explicitly states what it should not do. It describes functional requirements in terms of all the inputs and outputs to the system and the functionality that must be provided to transform those inputs into the outputs. It additionally describes the non- functional requirements that have been negotiated and agreed upon by the stakeholders. A supporting document known as the requirements definition document provides clear definitions of all the terms used in the specification. The SRS is normally written in natural language but complex or critical requirements may be more formally specified [5].