g53fsp formal specification
DESCRIPTION
G53FSP Formal Specification. Dr. Rong Qu. Introduction to Formal Specification. http://www.cs.nott.ac.uk/~rxq/g53fsp. Background. A specification may have many uses, in many forms Management Specification in English Programmers Written in a pseudo (or real) programming language - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/1.jpg)
School of Computer Science
G53FSP Formal Specification 1
G53FSPFormal Specification
Dr. Rong QuIntroduction to Formal Specification
http://www.cs.nott.ac.uk/~rxq/g53fsp
![Page 2: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/2.jpg)
School of Computer Science
G53FSP Formal Specification 2
Background
A specification may have many uses, in many forms Management
Specification in English Programmers
Written in a pseudo (or real) programming language
CS & Management Improve quality of software systems Provide proof & verifications
![Page 3: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/3.jpg)
School of Computer Science
G53FSP Formal Specification 3
Background
Need to be precise Management
Must be able to agree what is to be implemented
![Page 4: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/4.jpg)
School of Computer Science
G53FSP Formal Specification 4
Background
Need to be precise Programming
Written in language is probably no use Expensive to create Long Include un-necessary details Performance not effect of operation Difficult to understand
![Page 5: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/5.jpg)
School of Computer Science
G53FSP Formal Specification 5
Background Precise definition of
Effects of various operations rather than its performance details
Information to be displayed to users No need of
How the operations are to be done How the data is to be storedEtc
The details is no use of specify the effect of the system
![Page 6: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/6.jpg)
School of Computer Science
G53FSP Formal Specification 6
Background
Also may need a specification to Prove certain properties Prove that certain combinations of states
never occur Value of a given variable never go outside
certain bounds
Correctness of system can be proven
![Page 7: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/7.jpg)
School of Computer Science
G53FSP Formal Specification 7
Purpose of Formal Specification
To state what system should do without describing how to do it
To reduce faults in systems Invest more effort is early stage of system
development Requirement errors can be discovered as
early as possible and resolved
![Page 8: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/8.jpg)
School of Computer Science
G53FSP Formal Specification 8
Specification Parts
A specification need to include Details of the system
The states it can occupy Invariants which will always hold
Dynamic aspects All operations which are possible The relations of inputs to outputs Changes of state that can occur
![Page 9: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/9.jpg)
School of Computer Science
G53FSP Formal Specification 9
Specification Parts
A specification will include Functional requirements
The effect of xxx will be The output of command yyy will be as specified in
standard zzz The system will produce a report on salesman
effectiveness
![Page 10: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/10.jpg)
School of Computer Science
G53FSP Formal Specification 10
Specification Parts
A specification will include Non-functional requirements (properties)
All data access should be via company supplied subroutines
The system should be immune to power failures The response time must be …
![Page 11: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/11.jpg)
School of Computer Science
G53FSP Formal Specification 11
Specification Parts
A specification will include Design directives
The system will collect data from … The VDU display will be in the form … The designer will use SSADM
![Page 12: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/12.jpg)
School of Computer Science
G53FSP Formal Specification 12
Specification Parts
A specification will include Goals
Response times should be minimised It should run in 748kb of memory
Data statements The system must maintain the average
temperature over the preceding …
![Page 13: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/13.jpg)
School of Computer Science
G53FSP Formal Specification 13
Definition – Formal Specification
The specification will be A strict mathematical definition of the effect
of the required operation Usually expressed in mathematical notions with
precisely defined vocabulary, syntax and semantics
Definition is not necessarily in the form in which it can be programmed
![Page 14: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/14.jpg)
School of Computer Science
G53FSP Formal Specification 14
Definition – Formal Specification
In computer science, formal methods refers to mathematically based techniques for the specification, development and verification of software and hardware systems.
From Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/Main_Page
![Page 15: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/15.jpg)
School of Computer Science
G53FSP Formal Specification 15
Definition – Formal Specification
The approach is especially important in high-integrity systems, for example where safety or security is important, to help ensure that errors are not introduced into the development process.
From Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/Main_Page
![Page 16: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/16.jpg)
School of Computer Science
G53FSP Formal Specification 16
Definition
Formal methods are particularly effective early in development at the requirements and specification levels.
From Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/Main_Page
![Page 17: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/17.jpg)
School of Computer Science
G53FSP Formal Specification 17
Formal Methods Parts
Program specification Program verification Automated theorem proving Model checking
![Page 18: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/18.jpg)
School of Computer Science
G53FSP Formal Specification 18
Program Specification
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 or programmatic terms.
![Page 19: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/19.jpg)
School of Computer Science
G53FSP Formal Specification 19
Program Verification In computer science, program
verification is the process of formally proving that a computer program does exactly what is stated in the program specification it was written to realize
Program verification is more specific in that it aims to verify the code itself, not only some abstract model of the program. Intel, AMD: verify chips BMW: automotive system
![Page 20: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/20.jpg)
School of Computer Science
G53FSP Formal Specification 20
Automated Theorem Proving
Automated theorem proving is the proving of mathematical theorems by a computer program. Depending on the underlying logic, the problem of deciding the validity of a theorem varies from trivial to impossible.
![Page 21: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/21.jpg)
School of Computer Science
G53FSP Formal Specification 21
Model checking
Model checking is a method to algorithmically verify formal systems. This is achieved by verifying if the model, often deriving from a hardware or software design, satisfies a formal specification. The specification is often written as temporal logic formulas.
![Page 22: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/22.jpg)
School of Computer Science
G53FSP Formal Specification 22
Formal vs. Informal Methods
Formal specification vs. SSADM
SSADM now government standard Widely used in industry Semester 5 of CSiT
![Page 23: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/23.jpg)
School of Computer Science
G53FSP Formal Specification 23
Formal vs. Informal Methods
Lots of possible inconsistencies Decision tablesTo prove that, if you use “don’t care”
entries, the result is completely and uniquely defined?
Computer tools to help overcome the difficulties, but are still basic problems
![Page 24: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/24.jpg)
School of Computer Science
G53FSP Formal Specification 24
Mathematics vs. Natural Language for System Specification
Deficiencies of natural language Can be vague Can be ambiguous Can be self-contradictory Can be incomplete Encourages imprecise thinking Cannot easily handle abstractions
![Page 25: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/25.jpg)
School of Computer Science
G53FSP Formal Specification 25
Mathematics – good features
Easily handle abstractions
Can be used for reasoning about, and describing a system
Is concise
Is non-ambiguous
![Page 26: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/26.jpg)
School of Computer Science
G53FSP Formal Specification 26
Mathematics – good features
Is applied widely to the real world
Can approximate where exactness is unnecessary
Changes slower than computing
![Page 27: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/27.jpg)
School of Computer Science
G53FSP Formal Specification 27
Formal Notation – drawbacks
The customer cannot easily understand the specification
The mathematics used is unfamiliar to many of the staff
In real world, getting user requirements document is a problem
![Page 28: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/28.jpg)
School of Computer Science
G53FSP Formal Specification 28
Z
A formal specification technique developed at Oxford
Uses very mathematical notation to provide exact definitions of a system
System is described in a number of small Z modules, which can cross-refer each other
Each module is expected to have some descriptive English text to help users to understand it
![Page 29: G53FSP Formal Specification](https://reader035.vdocument.in/reader035/viewer/2022062221/56812b68550346895d8f8a48/html5/thumbnails/29.jpg)
School of Computer Science
G53FSP Formal Specification 29
Summary
Background of formal specification Parts of specification Formal specification vs.
SSADM Natural language
Formal method advantages and drawbacks Z specification language