Specification is the process of describing
a system and its desired properties. Formal specification uses a language with a
mathematically defined syntax and semantics. The kinds of system properties
might include functional behavior, timing behavior, performance characteristics, or internal structure. So far, specification has been most successful for
behavioral properties. One current
trend is to integrate different specification languages, each able to handle a
different aspect of a system. Another is
to handle nonbehavioral aspects of a
system such as its performance, realtime constraints, security policies, and
architectural design.