In: Computer Science
A formal software specification is a statement
expressed in a language whose vocabulary,
syntax, and semantics are formally defined. The
need for a formal semantic definition means that
the specification languages cannot be based on
natural language; it must be based on
mathematics.
The advantages of a formal language are:
• The development of a formal specification
provides insights and understanding of the
software requirements and the software
design.
• Given a formal system specification and a
complete formal programming language
definition, it may be possible to prove that a
program conforms to its specifications.
• Formal specification may be automatically
processed. Software tools can be built to
assist with their development, understanding,
and debugging.
Depending on the formal specification
language being used, it may be possible to
animate a formal system specification to
provide a prototype system.
• Formal specifications are mathematical
entities and may be studied and analyzed
using mathematical methods.
• Formal specifications may be used as a guide
to the tester of a component in identifying
appropriate test cases.
• Depending on the formal specification
language being used, it may be possible to
animate a formal system specification to
provide a prototype system.
• Formal specifications are mathematical
entities and may be studied and analyzed
using mathematical methods.
• Formal specifications may be used as a guide
to the tester of a component in identifying
appropriate test cases.