Formal Methods of S/W Development: Lecture 2: Introduction To Formal Specification
Formal Methods of S/W Development: Lecture 2: Introduction To Formal Specification
Software Development
The process by which user needs are translated into a
software product. This involves translating user needs
into software requirements, transforming the software
requirements into design, implementing the design in
code, and testing the code1. (5/5 points)
2
1. IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology
Seven Myths by Hall 1
Process Models
Waterfall, V-Model, Spiral Model, Incremental
Development, USDP
4
What is a Specification?
Intermediate product of software development process
Differences?
Contractual Agreement
Client signs off on the SRS
2. Applicability
Sequential – one thread of control
Concurrent – multiple threads of control
Real-Time – time critical
Hybrid – discrete and continuous
11
Classifications (cont’d)
3. Style
Model-Oriented – explicitly defines states and state
sequences; concrete and useful for implementation
12
Formal Specification
Formal specification is the use of mathematical notation
to precisely describe what properties a system should have,
without describing how to do it
13
Formal Spec. Languages
A Formal Specification Language (FSL) provides the sound
mathematical basis for a formal method.
14
Jeannette M. Wing ‘90, A Specifier’s Introduction to Formal Methods
Formal Spec. Languages (cont’d)
FSLs provide a notation (syntactic domain), a universe of
objects (semantic domain), and a precise rule defining
which objects satisfy each specification.
15
Examples of FSLs
Z (pronounced “Zed”) is based on set theory and first-order
predicate logic. Can be used in both model-oriented and
property-oriented styles. Applies to sequential systems.
Reading Assignment:
J. Wing – A Specifier’s Introduction to Formal Methods
17