Project: Library System: There Are 2 Users of The System: Patrons and Librarians. Librarians Can Also Be Patrons
Project: Library System: There Are 2 Users of The System: Patrons and Librarians. Librarians Can Also Be Patrons
This requirements document describes the requirements of our library system. It does not describe all the functionalities of a real library system but only of subset of them.
Introduction
There are 2 users of the system: patrons and librarians. Librarians can also be patrons.
The objectives of the library system are to allow patrons to: login/logout withdraw and return boo s search the library!s boo s pay overdue charges put a boo on hold and librarians to: login/logout add/remove boo s to/from the library move boo s from one shelf of the library to another one activate manually the ne"t#day function that updates the databases at the end of the day.
2. The system shall contain information about each librarian: loginid% name, password and address. It is assumed that the information about all librarians is part of the initial state of the database &no interactions are needed to add or delete librarians from the system'. Librarians can be patrons.
(. The system shall contain information about each boo in the library: isbn number% title% author&s'% year &of publication'% copy number% shelfid% current status &on# loan% on#shelf% on#hold% on#loan#and#on#hold'% the date on which the boo entered loan and/or hold status. )or boo s on loan the system shall contain the loginid of the patron involved. )or boo s on hold or on#loan#and#on#hold the system shall contain the loginid of the patron involved.
*. The system shall contain information about each shelf in the library: shelfId, capacity &the ma"imum number of boo s that the shelf can hold'.
Integrity Constraints
The database shall satisfy the following integrity constraints. $. + boo cannot be on hold for a particular patron for more than ( days. +s a result of this constraint% removing the boo from hold status% the boo reverts to the on shelf status. ,emoving the boo from on#loan#and#on# hold status will result in a status of on#loan for the boo . 2. + patron cannot withdraw a boo if his/her unpaid fines e"ceed -.. (. + patron cannot withdraw more than 2 boo s at any one time. *. The capacity of a shelf cannot e"ceed ./ boo s. .. + boo on loan for more than two wee s becomes overdue.
The isbn and copy number of the boo to be withdrawn are supplied at the screen. The interaction fails if: The boo is already withdrawn. The boo is not in the library!s collection. The patron has already withdrawn . boo s. The patron owes more than -.. The boo is on hold by someone else. hold - (patron) Isbn of the boo is supplied on the screen. The purpose of this interaction is to allow a patron to place a boo that is currently withdrawn on hold. 4hen a patron puts a boo on hold% a copy number &for the given isbn' will be assigned by the system. The interaction fails if: $. 2. (. *. .. 5. 6. The boo is on the shelf The patron has withdrawn and not yet returned a boo with the same isbn The patron has already put on hold a boo with the same isbn The boo is not in the library!s collection The patron has already withdrawn . boo s. The patron owes more than -.. The patron cannot have more than 2 boo s on hold.
return - (patron) The isbn and copy number of the boo are supplied at the screen. The purpose of this interaction is to allow a patron to return a boo that he/she has withdrawn. If the boo is overdue% the patron!s charge record is updated by an amount of -$ a day. If the boo is on hold by a patron% a call is made to this patron &you can ignore the call in the transaction% but you should record the date that the call was made'. The interaction fails if the boo is not recorded as being withdrawn by that patron. search - ( patron) The purpose of this interaction is to allow a patron to search for a boo in the library. 7ne or more of the following: title, author, year are supplied at the screen. 8ither title or author must be supplied% however the title need not be complete # a
substring of the title might be supplied # and only a single author can be supplied &even though boo s can have multiple authors'. + range of years can be specified. )or e"ample% the search 9lists all boo s with the word :hi ing! in the title written by 3mith &there might be coauthors' between $;;. and 2///. The title% author and year of all boo s that satisfy the search criterion are output. pay - (patron) The amount of the payment is input at the screen. The purpose of this interaction is to allow a patron to pay a fine. The amount of payment is deducted from the balance owed. +ny e"cess is considered a donation to the library. The amount of fine remaining is displayed on the screen. next-day - (librarian) The purpose of this interaction is to allow a librarian to record the fact that another day has passed. +ctions that depend on the date &e.g.% removing a boo from hold status' should be automatically triggered by this interaction. The interaction fails if the initiator is not a librarian. &7ne implementation of this is that your interface ensures that only a librarian can initiate this interaction'. add - ( librarian) Isbn, title, year, author&s', and shelf-Id &of the shelf on which the boo is to be stored' are supplied at the screen. The purpose of this interaction is to allow a librarian to add a new boo to the library!s boo s. 2ultiple copies of the same boo can e"ist in the library!s boo s. + new copy number must be assigned to the boo to be added. The interaction fails if: The initiator is not a librarian. The shelf is full. The boo specifications conflict with a boo already in the library!s collection &e.g.% if there is a boo in the library!s collection with the same isbn number but a different author% title% or year.' move - (librarian) isbn, copy number and shelf-Id &to identify the new shelf' are supplied.
The purpose of this interaction is to allow a librarian to move a boo from one shelf to another. The interaction fails if: The boo is not in the library!s boo s. The shelf is full. The initiator is not a librarian. remove - ( librarian) Isbn and copy number are supplied at the screen. The purpose of this interaction is to allow a librarian to remove a boo from the library!s boo . The interaction fails if the boo is not in the library!s boo s or if the initiator is not a librarian.