Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 10 Techniques for Requirements Definition and Specification II.

Similar presentations


Presentation on theme: "1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 10 Techniques for Requirements Definition and Specification II."— Presentation transcript:

1 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 10 Techniques for Requirements Definition and Specification II

2 2 CS 501 Spring 2002 Administration

3 3 CS 501 Spring 2002 Formal Specification Why?  Precise standard to define and validate software. Why not?  May be time consuming  Methods are not suitable for all applications

4 4 CS 501 Spring 2002 Formal Specification using Mathematical Notation Example: B 1, B 2,... B k is a sequence of m x m matrices  1,  2,...  k is a sequence of m x m elementary matrices B 1 -1 =  1 B 2 -1 =  2  1 B k -1 =  k...  2  1 The numerical accuracy must be such that, for all k, B k B k -1 - I < 

5 5 CS 501 Spring 2002 Formal Specification Using Diagrams digit unsigned integer digit. E + - unsigned integer unsigned number Pascal number syntax

6 6 CS 501 Spring 2002 Formal Specification of Programming Languages ::= | ::= { } ::=. { } |. { } E | E ::= | ::= + | - Pascal number syntax

7 7 CS 501 Spring 2002 Formal Specification using Z ("Zed") Ben Potter, Jane Sinclair, David Till, An Introduction to Formal Specification and Z (Prentice Hall) 1991 Jonathan Jacky The Way of Z (Cambridge University Press) 1997

8 8 CS 501 Spring 2002 Two Rules  Formal specification does not guarantee correctness  Formal specification does not prescribe the implementation

9 9 CS 501 Spring 2002 Informal: The function intrt(a) returns the largest integer whose square is less than or equal to a. Formal (Z): intrt: N N a : N intrt(a) * intrt(a) < a < (intrt(a) + 1) * (intrt(a) + 1) Example: Specification using Z

10 10 CS 501 Spring 2002 Example: Algorithm 1 + 3 + 5 +... (2n - 1) = n 2 Static specification does not describe the design of the system. A possible algorithm uses the mathematical identity:

11 11 CS 501 Spring 2002 Example: Program int intrt (int a) /* Calculate integer square root */ { int i, term, sum; term = 1; sum = 1; for (i = 0; sum <= a; i++) { term = term + 2; sum = sum + term; } return i; }

12 12 CS 501 Spring 2002 Formal Specification Using Finite State Machine A broadly used method of formal specification:  Event driven systems (e.g., games)  User interfaces  Protocol specification etc., etc.,...

13 13 CS 501 Spring 2002 Finite State Machine Example: Therapy control console [informal description]

14 14 CS 501 Spring 2002 State Transition Diagram Patients Fields SetupReady Beam on Enter Start Stop Select field Select patient (interlock) (ok)

15 15 CS 501 Spring 2002 State Transition Table Select Patient Select Field Enter ok StartStop interlock Patients Fields Setup Ready Beam on Fields Patients Setup Ready Beam on Ready

16 16 CS 501 Spring 2002 Z Specification STATE ::= patients | fields | setup | ready | beam_on EVENT ::= select_patient | select_field | enter | start | stop | ok | interlock FSM == (STATE X EVENT) STATE no_change, transitions, control : FSM Continued on next slide

17 17 CS 501 Spring 2002 Z Specification (continued) control = no_change transitions no_change = { s : STATE; e : EVENT (s, e) s } transitions = { (patients, enter) fields, (fields, select_patient) patients, (fields, enter) setup, (setup, select_patient) patients, (setup, select_field) fields, (setup, ok) ready, (ready, select_patient) patients, (ready, select_field) fields, (ready, start) beam_on, (ready, interlock) setup, (beam_on, stop) ready, (beam_on, interlock) setup }

18 18 CS 501 Spring 2002 Schemas Schema:  Enables complex system to be specifed as subsystems  The basic unit of formal specification.  Describes admissible states and operations of a system.

19 19 CS 501 Spring 2002 LibSys: An Example of Z Library system:  Stock of books  Registered users.  Each copy of a book has a unique identifier.  Some books on loan; other books on shelves available for loan.  Maximum number of books that any user may have on loan.

20 20 CS 501 Spring 2002 LibSys: Operations  Issue a copy of a book to a reader.  Reader returns a book.  Add a copy to the stock.  Remove a copy from the stock.  Inquire which books are on loan to a reader.  Inquire which readers has a particular copy of a book.  Register a new reader.  Cancel a reader's registration.

21 21 CS 501 Spring 2002 LibSys Level of Detail: Assume given sets: Copy, Book, Reader Global constant: maxloans

22 22 CS 501 Spring 2002 Domain and Range dom mXY x ran m y m : X Y dom m = { x  X :  y  Y  x y} ran m = { y  Y :  x  X  x y} m domain: range:

23 23 CS 501 Spring 2002 LibSys: Schema for Abstract States Library stock : Copy Book issued : Copy Reader shelved : F Copy readers: F Reader shelved  dom issued = dom stock shelved  dom issued = Ø ran issued  readers  r : readers #(issued  {r}) maxloans <

24 24 CS 501 Spring 2002 Schema Inclusion LibDB stock : Copy Book readers: F Reader LibLoans issued : Copy Reader shelved : F Copy  r : Reader #(issued  {r}) maxloans shelved  dom issued = Ø <

25 25 CS 501 Spring 2002 Schema Inclusion (continued) Library LibDB LibLoans dom stock = shelved  dom issued ran issued  readers

26 26 CS 501 Spring 2002 Schemas Describing Operations Naming conventions for objects: Before: plain variables, e.g., r After: with appended dash, e.g., r' Input: with appended ?, e.g., r? Output: with appended !, e.g., r!

27 27 CS 501 Spring 2002 Operation: Issue a Book  Inputs: copy c?, reader r?  Copy must be shelved initially: c?  shelved  Reader must be registered: r?  readers  Reader must have less than maximum number of books on loan: #(issued  {r?}) < maxloans  Copy must be recorded as issued to the reader: issued' = issued  {c? r?}  The stock and the set of registered readers are unchanged: stock' = stock; readers' = readers

28 28 CS 501 Spring 2002 Operation: Issue a Book stock, stock' : Copy Book issued, issued' : Copy Reader shelved, shelved': F Copy readers, readers' : F Reader c?: Copy; r? :Reader [See next slide] Issue

29 29 CS 501 Spring 2002 Operation: Issue a Book (continued) [See previous slide] Issue shelved  dom issued = dom stock shelved'  dom issued' = dom stock' shelved  dom issued = Ø; shelved'  dom issued' = Ø ran issued  readers; ran issued'  readers'  r : readers  #(issued  {r}) maxloans  r : readers'  #(issued'  {r}) maxloans c?  shelved; r?  readers; #(issued  {r?}) < maxloans issued' = issued  {c? r?} stock' = stock; readers' = readers < <

30 30 CS 501 Spring 2002 Schema Decoration Issue Library Library' c? : Copy; r? : Reader c?  shelved; r?  readers #(issued  {r?}) < maxloans issued' = issued  {c? r?} stock' = stock; readers' = readers

31 31 CS 501 Spring 2002 Schema Decoration Issue  Library c? : Copy; r? : Reader c?  shelved; r?  readers #(issued  {r?}) < maxloans issued' = issued  {c? r?} stock' = stock; readers' = readers

32 32 CS 501 Spring 2002 The Schema Calculus Schema inclusion Schema decoration Schema disjunction: AddCopy AddKnownTitle  AddNewTitle Schema conjunction: AddCopy EnterNewCopy  AddCopyAdmin Schema negation Schema composition = ^ = ^


Download ppt "1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 10 Techniques for Requirements Definition and Specification II."

Similar presentations


Ads by Google