Specification is the documentation that describes the requested behavior of an engineering system. The documentation typically describes what is needed by the system user as well as requested properties of inputs and outputs.
One of the purposes of specification is to achieve consensus on what development subject is to achieve before making the more time-consuming effort of writing source code and test cases, followed by a period of debugging. Typically, such consensus is reached after one or more reviews.
Functional specification is declared "complete" or "signed off" as soon as team consensus is reached. After this, software development and testing team write source code and test cases using the functional specification as the reference. While testing is performed the behavior of the program is compared against the expected behavior as defined in the functional specification.
WEB100 is much experienced in composing specification, as many projects for which it was documented were completed during ten years of work. We have good idea of what client wishes after brief meeting, so one of the most important and difficult for some components will be performed without delays and numerous problems.