260 likes | 518 Views
Formal Methods and Models. Z Specification of the Library System Boumediene Belkhouche Fall 2012. Library System Description. The library has many books on different topics The library has registered readers A book may have several copies Each copy in the library has a unique ID
E N D
Formal Methods and Models Z Specification of the Library System Boumediene Belkhouche Fall 2012
Library System Description • The library has many books on different topics • The library has registered readers • A book may have several copies • Each copy in the library has a unique ID • Each reader has a unique ID • At any time a certain number of copies of books are on loan to readers • A reader cannot borrow more than a certain maximum • Available books are kept on the library shelves • A book can be borrowed or returned • When a book is returned, it is put back on the shelf
Library System Operations • Issue a copy of a book to a reader (borrow) • Return a copy of a borrowed book by the reader • Add a copy of a book to the library • Remove a copy of a book from the library • Enquire which books are borrowed by a given reader • Enquire which reader has a given book • Register a new reader • Remove an existing reader
A Z Specification Consists of 4 parts • Given sets, data types and constants • State definition • Initial state • Operations
Z Specification of the Library • Given Sets [Book, Copy, Reader] NB. Symbols used: • ⇸ ↦ Ξ ∀ × → Δ ≠ ∧ ∨ ∉ ∈ ∅ ∃ ℤ ℕ ℙ ℝ ≙ • •
Z Specification of the Library • State definition Library stock: Copy⇸Book • issued: Copy ⇸ Reader shelved: Copy readers:Reader shelved dom issued = dom stock shelved dom issued = ran issued readers ∀ r : readers #(issued {r}) maxloans
Explanations • stock records copies of books in the library • issued records which copies are on loan and to whom • shelved is a subset of the copies on the shelves and available for borrowing • readers is the set of registered readers
Z Specification of the Library 3. Initial State Library_Init ΔLibrary shelved’ = Ø issued’ = Ø readers’ = Ø
Symbols used: • ⇸ ↦ Ξ ∀ × → Δ ≠ ∧ ∨ ∉ ∈ ∅ ∃ ℤ ℕ ℙ ℝ ≙ • : Teacher-Course {ITBP120} tuples whose second element is “ITBP120” are returned. • : { bb } Teacher-Course tuples whose first element is “bb” are returned. • : dir {num?} tuples whose second element is “num?” are removed. • : {name?} dir tuples whose first element is “name?” are removed. •
Function override operator Function override adds pairs from f1 to f2 such that it: • acts as a domain subtraction and a set union, if any element of f2 is mapped anywhere by f1, {NouraŒprojectA } {NouraŒnewProj} = ({Noura } studentproject) {NouraŒnewProj}
Z Specification of the Library Operations WcopiesOK Library c! : Copy r? : Reader r? ∈ readers c! = dom (issued {r?}) Restricts range to only those elements of the argument
Z Specification of the Library • 4. Operations RemoveCopyOK Library c? : Copy c? ∈ shelved shelved’ = shelved \ {c?} stock’ = {c?} stock Restricts the domain to only those elements not equal to the argument
Z Specification of the Library Operations Borrow Library c? : Copy r? : Reader c? ∈ shelved r? ∈ readers # (issued {r?}) maxloans issued’ = issued {c? ↦ r?} shelved’ = shelved {c?} stock’ = stock; readers’ = readers
Z Specification of the Library Operations Return Library c? : Copy r? : Reader c? ∈dom issued r? ∈ readers issued’ = issued {c? ↦ r?} shelved’ = shelved {c?} stock’ = stock; readers’ = readers
A Z Specification for the Library IS Operations WhoHasCopy Ξ Library c? : Copy; r! : Reader c? ∈dom issued r! = issued (c?)
Z Specification of the Library • 4. Operations RegisterReader Library r? : Reader r? ∉ readers readers’ = reader {r?}
Z Specification of the Library • 4. Operations RemoveReader Library r? : reader r? ∈ readers readers’ = reader {r?} What if r? has borrowed books?
Z Specification of the Library • 4. Operations AddCopyReport Ξ Library stock: Copy⇸Book b? : Book rep! : Report • b? ∈ ran stock rep! = CopyAdded b? ∉ ran stock rep! = NewTitleAdded
Z Specification of the Library • 4. Operations EnterNewCopy Library b? : Book c: Copy c ∉ dom stock stock’ = stock {c ↦ b?} shelved’ = shelved {c} issued’ = issued; readers’ = readers
Z Specification of the Library • 4. Operations AddCopy≙EnterNewCopy∧CopyReport
Z Specification of the Library • 4. Operations Execise: do • Which books a reader has • Remove a copy from the library