Presentation is loading. Please wait.

Presentation is loading. Please wait.

SWEN 5130Requirements Engineering Algebraic Specification Slide 1 Algebraic Specification u Specifying abstract types in terms of relationships between.

Similar presentations


Presentation on theme: "SWEN 5130Requirements Engineering Algebraic Specification Slide 1 Algebraic Specification u Specifying abstract types in terms of relationships between."— Presentation transcript:

1 SWEN 5130Requirements Engineering Algebraic Specification Slide 1 Algebraic Specification u Specifying abstract types in terms of relationships between type operations

2 SWEN 5130Requirements Engineering Algebraic Specification Slide 2 Objectives u To explain the role of formal specifications in sub-system interface definition u To introduce the algebraic approach to formal specification u To describe the systematic construction of algebraic specifications u To illustrate a number of incremental ways to write algebraic specifications

3 SWEN 5130Requirements Engineering Algebraic Specification Slide 3 Topics covered u Systematic algebraic specification u Structured specification u Error specification

4 SWEN 5130Requirements Engineering Algebraic Specification Slide 4 Interface specification u Formal specification is particularly appropriate for defining sub-system interfaces. It provides an unambiguous interface description and allows for parallel sub-system development u Interfaces may be defined as a set of abstract data types or object classes u Algebraic specification is particularly appropriate for ADT specification as it focuses on operations and their relationships

5 SWEN 5130Requirements Engineering Algebraic Specification Slide 5 Sub-system interfaces

6 SWEN 5130Requirements Engineering Algebraic Specification Slide 6 Specification structure u Introduction Declares the kind (type of name) of entity being specified and imported specifications u Informal description Informal description of the kind and its operations u Signature Defines the syntax of the interface to the object class or abstract data type u Axioms Defines the semantics of the operations by defining a set of axioms which characterize the behavior of the abstract data type

7 SWEN 5130Requirements Engineering Algebraic Specification Slide 7 Specification format (Generic Parameter) Sort imports Informal description of the sort and its operations Operation signatures setting out the names and the types of the parameters to the operations defined over the sort Axioms defining the operations over the sort Sort synonymous with Kind

8 SWEN 5130Requirements Engineering Algebraic Specification Slide 8 Array specification Slide 8 Slide one in Alg_Spec file

9 SWEN 5130Requirements Engineering Algebraic Specification Slide 9 Systematic algebraic specification u Algebraic specifications of a system may be developed in a systematic way Specification structuring. Specification naming. Operation selection. Informal operation specification Syntax definition Axiom definition

10 SWEN 5130Requirements Engineering Algebraic Specification Slide 10 Specification operations u Constructor operations. Operations which create entities of the type being specified u Inspection operations. Operations which evaluate entities of the type being specified u To specify behavior, define the inspector operations for each constructor operation

11 SWEN 5130Requirements Engineering Algebraic Specification Slide 11 Operations on a list ADT u Constructor operations which evaluate to kind List Create, Cons and Tail u Inspection operations which take kind list as a parameter and return some other kind Head and Length. u Tail can be defined using the simpler constructors Create and Cons. No need to define Head and Length with Tail.

12 SWEN 5130Requirements Engineering Algebraic Specification Slide 12 List specification u Replace with slide 2 in Alg_Spec file

13 SWEN 5130Requirements Engineering Algebraic Specification Slide 13 Recursion in specifications u Operations are often specified recursively u Tail (Cons (L, v)) = if L = Create then Create else Cons (Tail (L), v) Cons ([5, 7], 9) = [5, 7, 9] Tail ([5, 7, 9]) = Tail (Cons ( [5, 7], 9)) = Cons (Tail ([5, 7]), 9) = Cons (Tail (Cons ([5], 7)), 9) = Cons (Cons (Tail ([5]), 7), 9) = Cons (Cons (Tail (Cons ([], 5)), 7), 9) = Cons (Cons ([Create], 7), 9) = Cons ([7], 9) = [7, 9]

14 SWEN 5130Requirements Engineering Algebraic Specification Slide 14 Primitive constructors u It is sometimes necessary to introduce additional constructors to simplify the specification u The other constructors can then be defined using these more primitive constructors u In the binary tree specification, a primitive constructor Build is added

15 SWEN 5130Requirements Engineering Algebraic Specification Slide 15 Operations on a binary tree

16 SWEN 5130Requirements Engineering Algebraic Specification Slide 16 Binary tree specification u Slide three in Alg_Spec file

17 SWEN 5130Requirements Engineering Algebraic Specification Slide 17 Structured specification u Specifications should be constructed in a structured way. Other specifications should be reused whenever possible u Specification instantiation. A generic specification is instantiated with a given kind u Incremental specification. Use simple specifications in more complex specifications u Specification enrichment. A specification is constructed by inheritance from other specifications

18 SWEN 5130Requirements Engineering Algebraic Specification Slide 18 Specification instantiation

19 SWEN 5130Requirements Engineering Algebraic Specification Slide 19 Incremental specification u Develop a simple specification then use this in more complex specifications u Try to establish a library of specification building blocks that may be reused u In a graphical used interface, the specification of a Cartesian coordinate can be reused in the specification of a cursor u Display operations are hard to specify algebraically. May be informally specified

20 SWEN 5130Requirements Engineering Algebraic Specification Slide 20 Coord specification Slide four in Alg_Spec file

21 SWEN 5130Requirements Engineering Algebraic Specification Slide 21 Cursor specification u Replace with portrait slide

22 SWEN 5130Requirements Engineering Algebraic Specification Slide 22 Specification enrichment u Starting with a reusable specification building block, new operations are added to create a more complex type u Enrichment can be continued to any number of levels. It is comparable to inheritance u Not the same as importing a specification Importing makes a specification available for use Enrichment creates a specification for a new kind u The names of the generic parameters of the base kind are inherited when a kind is enriched

23 SWEN 5130Requirements Engineering Algebraic Specification Slide 23 Operations on New_list

24 SWEN 5130Requirements Engineering Algebraic Specification Slide 24 New_list specification Replace with portrait slide

25 SWEN 5130Requirements Engineering Algebraic Specification Slide 25 Multi-value operations u Some operations affect more than one entity Logically, a function returns more than one value u Stack pop operation returns both the value popped from the stack AND the modified stack u May be modeled algebraically using multiple operations (TOP and RETRACT for a stack) but a more intuitive approach is to define operations which return a tuple rather than a single value

26 SWEN 5130Requirements Engineering Algebraic Specification Slide 26 Queue operations

27 SWEN 5130Requirements Engineering Algebraic Specification Slide 27 Queue specification Replace with portrait slide

28 SWEN 5130Requirements Engineering Algebraic Specification Slide 28 Error specification u Under normal conditions the result of an operation may be kind X but under exceptional conditions, an error should be indicated and the returned kind is different. u Problem may be tackled in three ways Use a special distinguished constant operation (Undefined) which conforms to the type of the returned value. See array specification Define operation evaluation to be a tuple, where an element indicates success of failure. See Queue specification Include a special failure section in the specification

29 SWEN 5130Requirements Engineering Algebraic Specification Slide 29 List with exception part Replace with portrait slide

30 SWEN 5130Requirements Engineering Algebraic Specification Slide 30 Key points u Algebraic specification is particularly appropriate for sub-system interface specification u Algebraic specification involves specifying operations on an abstract data types or object in terms of their inter-relationships u An algebraic specification has a signature part defining syntax and an axioms part defining semantics u Formal specifications should have an associated informal description to make them more readable

31 SWEN 5130Requirements Engineering Algebraic Specification Slide 31 Key points u Algebraic specifications may be defined by defining the semantics of each inspection operation for each constructor operation u Specification should be developed incrementally from simpler specification building blocks u Errors can be specified either by defining distinguished error values, by defining a tuple where one part indicates success or failure or by including an error section in a specification


Download ppt "SWEN 5130Requirements Engineering Algebraic Specification Slide 1 Algebraic Specification u Specifying abstract types in terms of relationships between."

Similar presentations


Ads by Google