What is Program specification?
In [[computer science]], a '''program specification''' is the definition of what a [[computer program]] is expected to do. It can be informal, in which case it can be considered as a [[blueprint]] or user manual from a developer point of view, or formal, in which case it has a definite meaning defined in [[Mathematical model|mathematical]] or [[programmatic]] terms. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical [[Software|software systems]] are often carefully specified prior to [[Application software|application]] development. Specifications are most important for external [[Interface|interfaces]] that must remain stable.<ref>{{Cite book|url=https://books.google.com/books?id=G8UmAAAAMAAJ&q=what+is+Program+specification|title=Program Specification and Transformation: Proceedings of the IFIP TC2/WG 2.1 Working Conference on Program Specification and Transformation, Bad Tölz, FRG, 15-17 April 1986|last1=Meertens|first1=Lambert|last2=Meertens|first2=L. G. L. T.|last3=Committee 2--Programming|first3=IFIP Technical|last4=Algol|first4=IFIP Working Group 2 1 on|date=1987|publisher=North-Holland|isbn=978-0-444-70223-4|language=en}}</ref> == Overview == In [[systems engineering]] a specification is a document that clearly and accurately describes the essential [[Complexity|technical]] requirements for items, materials, or services including the procedures by which it can be determined that the requirements have been met. Specifications help avoid duplication and inconsistencies, allow for accurate estimates of necessary work and resources, act as a negotiation and reference document for engineering changes, provide documentation of configuration, and allow for consistent communication among those responsible for the eight primary functions of Systems Engineering. They provide a precise idea of the problem to be solved so that they can efficiently design the system and estimate the cost of design alternatives. The