Presentation on theme: "Formal Specification (continued) Lecture 3:"— Presentation transcript:
1Formal Specification (continued) Lecture 3: (SE 252/502) Dr. RAJIB Mall
2Organization of this Lecture
Presentation on theme: "Formal Specification (continued) Lecture 3:"— Presentation transcript:
1Formal Specification (continued) Lecture 3: (SE 252/502) Dr. RAJIB Mall
2Organization of this Lecture Overview of last lectureAlgebraic specification:Development techniqueRewrite rulesExamplePros and consState machine modellingSummary
3Review of last lecture Formal specification techniques: model-oriented property-oriented
4Review of last lecture Property-oriented techniques: axiomatic specificationalgebraic specificationModel-oriented techniques:Z, VDM, Petri net, State machine, etc.
5Overview of last lecture Axiomatic techniques:based on early work on program verification.Use first-order predicate logic:specify operations through pre and post conditions
6Review of last lecture Algebraic technique: data types are viewed as heterogeneous algebraaxioms are used to state properties of data type operations
7Algebraic Specification Using algebraic specification:the meaning of a set of interface procedures is defined by using equations.
8Algebraic Specification Algebraic specifications are usually presented in four parts:types sectionexceptions sectionsignature sectionrewrite rules section
9Types Section Types Section Lists: sorts (or types) being specified sorts being importedImporting a sort:makes it available in specification.
10Exception SectionLists names of exceptional conditions used in later sections:under exceptional conditions error should be indicated.
11Signature Section Defines signatures of interface procedures: e.g. PUSH takes a stack and an element and returns a new stack.push:stack element stack
12Rewrite rules section Lists the properties of the operators: In the form of a set of axioms or rewrite rules.allowed to have conditional expressions
13Developing Algebraic Specification The first step in defining an algebraic specification:identify the set of required operations.e.g. for string identify operations:create, compare, concatenate, length, etc.
14Developing Algebraic Specification Generally operations fall into 2 classes:Constructor Operations :Operations which create or modify entities of the sort e.g., create, update, add, etc.
15Developing Algebraic Specification Inspection Operations :Operations which evaluate attributes of the sort, e.g., eval, get, etc.
16Developing Algebraic Specification A rule of thumb for writing algebraic specifications:first establish constructor and inspection operations
17Developing Algebraic Specifications Next, write down axioms:compose each inspection operator over each constructor operator.
18Developing Algebraic Specifications If there are m constructors and n inspection operators:we should normally have m*n axioms.However, an exception to this rule exists.
19Developing Algebraic Specifications If a constructor operation can be defined using other constructors:we need to define inspection operations using only primitive constructors.
20Example: Stack Let us specify an unbounded stack supporting: push, pop,newstack,top,empty.
28Two important questions Finite termination property:Does application of rewrite rules terminate after a finite number of steps?We might endlessly go on applying rewrite rules without coming to any conclusion?
29Two important questions Unique termination property:Can different sequence in application of the rewrite rules always give the same answer?If we choose to simplify different terms of the expression in different experiments:shall we always get the same answer?
30Algebraic Specification For arbitrary algebraic equations:convergence is undecidable.If the r.h.s. of each rewrite rule has fewer terms than the left:rewrite process must terminate.
31Auxiliary Functions Sometimes development of a specification requires: extra functions not part of the system:to define the meaning of some interface procedures.
32Auxiliary Functions: Example To specify bounded stacks:need to add a depth function:push returns either a stack oran exception “overflow” when depth is exceeded.
33Bounded stack In order to specify a bounded stack: we need to make changes to different sections to include auxiliary functions.
39Structured Specifications Writing formal specifications is time consuming.To reduce effort, we need to reuse specifications:instantiation of generic specificationsincremental development of specifications
40Specification Instantiation Take an existing specification:specified with some generic parameterInstantiate with some sort
41Incremental Development Develop specifications for simple sorts:using these specify more complex entities.
42Pros and ConsAlgebraic specifications have a strong mathematical basis:can be viewed as heterogeneous algebra.
43Pros and Cons An important shortcoming of algebraic specifications: cannot deal with side effectsdifficult to use with common programming languages.
44Pros and Cons Algebraic specifications are hard to understand: also changing a single property of the systemmay require changing several equations.
45Specification of timing constraints expressed in terms of occurrence of certain events.
46Events A stimulus to the system from its environment. Can also be an externally observable response:that the system makes to its environmentEvents can be instantaneousor assumed to have a duration
47Types of timing constraints Performance constraints:constraints imposed on the response of the system.Behavioral constraints:constraints imposed