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

Slides:



Advertisements
Similar presentations
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn 2.4 The Z Notation [Reference: M. Spivey: The Z Notation, Prentice Hall]
Advertisements

College of Information Technology & Design
CSCI3170 Introduction to Database Systems
CS1Q Computer Systems Lecture 12 Simon Gay. Lecture 12CS1Q Computer Systems - Simon Gay 2 Design of Sequential Circuits The systematic design of sequential.
CS 501: Software Engineering Fall 2000 Lecture 10 Formal Specification.
Algorithms and Problem Solving
Formal Methods: Z CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 18, 2003.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 10 Requirements 3.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 12 Requirements IV.
CSE115/ENGR160 Discrete Mathematics 02/24/11 Ming-Hsuan Yang UC Merced 1.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 10 Requirements 4.
Schema Operators. State We can use the language of schemas to describe the state of a system, and operations upon it. Different aspects of the state --
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 10 Requirements 4.
Encapsulation by Subprograms and Type Definitions
Promotion. Promotion is a structuring technique that may be used whenever the state of a system contains multiple, indexed instances of the same component.
Schema Operators. State We can use the language of schemas to describe the state of a system, and operations upon it. Different aspects of the state --
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 10 Requirements 4.
C SC 520 Principles of Programming Languages 1 C SC 520: Principles of Programming Languages Peter J. Downey Department of Computer Science Spring 2006.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 91 Formal Specification l Techniques for the unambiguous specification of software.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 9 Requirements 3.
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
Describing Syntax and Semantics
ECE 301 – Digital Electronics Introduction to Sequential Logic Circuits (aka. Finite State Machines) and FSM Analysis (Lecture #17)
ECE 331 – Digital Systems Design Introduction to Sequential Logic Circuits (aka. Finite State Machines) and FSM Analysis (Lecture #19)
CS CS 5150 Software Engineering Lecture 10 Requirements 3.
CS CS 5150 Software Engineering Lecture 10 Requirements 3.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 10 Slide 1 Formal Specification.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 9 Requirements 3.
Introduction to C language
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Formal Specification.
The Fundamentals: Algorithms, the Integers & Matrices.
February 17, 2015Applied Discrete Mathematics Week 3: Algorithms 1 Double Summations Table 2 in 4 th Edition: Section th Edition: Section th.
Web Database Design Session 6 and 7 Matakuliah: Web Database Tahun: 2008.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 9 Slide 1 Formal Specification l Techniques for the unambiguous specification of software.
Discrete Mathematics Algorithms. Introduction  An algorithm is a finite set of instructions with the following characteristics:  Precision: steps are.
1 R. Johnsonbaugh, Discrete Mathematics Chapter 4 Algorithms.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
Logic Specification and Z Schema 3K04 McMaster. Basic Logic Operators Logical negation ( ¬ ) Logical conjunction ( Λ or & ) Logical disjunction ( V or.
ECE 264 Object-Oriented Software Development Instructor: Dr. Honggang Wang Fall 2012 Lecture 3: Requirements Specification, C++ Basics.
Functions Copyright © J. Mercer, A function is a number-machine that transforms numbers from one set called the domain into a set of new numbers.
Formal Methods and Models
CS CS 5150 Software Engineering Lecture 10 Requirements 3.
Introduction to CS Theory Lecture 3 – Regular Languages Piotr Faliszewski
School of Computer Science & Information Technology G6DICP - Lecture 9 Software Development Techniques.
WXGE6103 Software Engineering Process and Practice Formal Specification.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Chapter Algorithms 3.2 The Growth of Functions 3.3 Complexity of Algorithms 3.4 The Integers and Division 3.5 Primes and Greatest Common Divisors.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
ECSE Software Engineering 1I HO 4 © HY 2012 Lecture 4 Formal Methods A Library System Specification (Continued) From Specification to Design.
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
Disjunctive Normal Form CS 270: Math Foundation of CS Jeremy Johnson.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Homework #2: Functions and Arrays By J. H. Wang Mar. 24, 2014.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 9 Requirements 3.
1 Abstract Model Specification. 2 Explicitly describes behavior in terms of a model using well-defined types (viz. set, sequences, relations, functions)
MTH108 Business Math I Lecture 8. Chapter 4 Mathematical Functions.
1 Specification A broad term that means definition Used at different stages of software development for different purposes Generally, a statement of agreement.
CS 5150 Software Engineering Lecture 9 Requirements 3.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 11 Requirements III.
1 Software Requirements Descriptions and specifications of a system.
Applied Discrete Mathematics Week 2: Functions and Sequences
Input Space Partition Testing CS 4501 / 6501 Software Testing
(State) Model-Based Approaches II Software Specification Lecture 36
Algorithm Discovery and Design
CS 501: Software Engineering Fall 1999
CS 501: Software Engineering Fall 1999
Presentation transcript:

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

2 CS 501 Spring 2002 Administration

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 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 CS 501 Spring 2002 Formal Specification Using Diagrams digit unsigned integer digit. E + - unsigned integer unsigned number Pascal number syntax

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

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 CS 501 Spring 2002 Two Rules  Formal specification does not guarantee correctness  Formal specification does not prescribe the implementation

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 CS 501 Spring 2002 Example: Algorithm (2n - 1) = n 2 Static specification does not describe the design of the system. A possible algorithm uses the mathematical identity:

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 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 CS 501 Spring 2002 Finite State Machine Example: Therapy control console [informal description]

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

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 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 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 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 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 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 CS 501 Spring 2002 LibSys Level of Detail: Assume given sets: Copy, Book, Reader Global constant: maxloans

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 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 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 CS 501 Spring 2002 Schema Inclusion (continued) Library LibDB LibLoans dom stock = shelved  dom issued ran issued  readers

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 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 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 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 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 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 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 = ^ = ^