Book Lenders of Canada
Library Information System

Informal Specification for CPSC 451 Customer Group #5

Jan. 16, 1996

Book Lenders of Canada

Steven Myers, Andy Lum, Edmond Hui,
Bryan Hunt, Donna Tabor, Siu Ho,
Rosina Ye, David Taylor, Michael Lippold,
Peter Toszer, Steven Thompson, Cam Phung.



Our library requires a system to keep track of the lending of our books. The library currently has a volume of 1 million books. The current number of borrowers is 10,000. We have a staff of 20 librarians with limited computer knowledge. The system will be used solely by the librarians and will not be used by the borrowers.

We want the system to store information about borrowers, books, and the status of lending books. The system should also tell us the location of each book in our 5-story library. To reduce our bookkeeping, we would like to use the system to keep track of borrower transactions, i.e., lending books, returning books, etc. We would also like the system to report information to borrowers and librarians.

Since the library is situated in a metropolitan area, we anticipate expansions in both our book volume and the number of borrowers. We want the system to be able to accommodate these changes.

Book and Borrower Information

Book Attributes - the system will contain the following information for each book:

Title - the title of the book

Author - first name, last name

Subject - a category that the book fits under (e.g. computer science - networking)

Call number - an unique 9-digit number assigned to each book, different copies of the same book will have different call numbers

Publisher - contains the publisher's name, address

Publishing date - date the book was published

Location - physical location of the book in the library

Status - the availability of the book based on one of the following:

  • Out - the book is on loan

  • Available - the book is in library and can be lent out

  • Hold - the book is out but a request has been made to borrow/recall the book

  • Maintenance - the book is in library but it is currently under repairs

Due date - date on which the book is due to be returned, depending on the type of book

Type - one of the three different types of books:

  • Reserved - overnight borrowing only

  • Reference - cannot be removed from library

  • Circulation - can be borrowed for a 3-week duration

Fine per day overdue - fine charged on borrower when a book is overdue, default set by type (e.g. $1 for reserved, $10 for circulation). It can be changed manually. The maximum fine is the cost of the book.

Circulation period - how long a borrower can lend a book, default set by type (e.g. 3 weeks for circulation, overnight for reserved). It can be changed manually.

Cost of book - the cost to replace the book

Information - a brief description of the book

Borrower Attributes - the following borrower information should be stored in the library system:

Name - borrower's name, first and last name

Address - borrower's mailing address

Phone number - borrower's phone number including area code (e.g., (403)555-5555)

ID - a unique identification number for every borrower in the system

Currently borrowed - a list of books that the borrower has taken out, but not returned

Balance of fees - the total amount owed to the library for overdue books

History of fees - a list of all overdue books with or without outstanding fees. If the outstanding fee for a particular book exceeds the replacement cost, the borrower must pay the replacement cost for the book

Book Administration

The system will manage book information and perform operations to add, remove, update, search, and generate a report on books.

Add a new book - allows the librarian to add a new book to the computer system. It should allow multiple copies of books, with different call numbers.

Remove a book - removes an existing book from the system. The librarian enters the call number of the book to be removed. If the book is already out, it cannot be removed.

Update a book - updates information about an existing book in the system. If the book is already out, it cannot be updated. The librarian enters the call number of the book to be updated, and can change any attributes of the book record.

Search for a book - allows the librarian to search the system by title, author, subject, or call number. It will display all information about the book. If more than one is found, a list will be displayed for selection.

Report on status of all books - allows the librarian to generate reports of books by status such as overdue, out, available, hold, and maintenance. Information included in the report can be specified by the librarian.

Borrower Record Administration

These functions help the librarian to manage borrower's accounts. In addition, librarian can generate reports based on information s/he provided.

Adding borrower record - A form will be provided that allows the librarian to enter information for a new account. The librarian will enter the following information: name, address, and phone number. The system will automatically assign an ID number, a signout limit, and an account balance.

Searching borrower record - The librarian will be able to search for borrowers by ID number or name. Search results should be displayed and the librarian should be able to access the specific records located in the search. The librarian should be given a choice of a detailed or a "stripped-down" view that includes only essential information.

Removing borrower record - The librarian will be able to remove accounts by ID number. An account with an outstanding balance or books on loan cannot be deleted.

Updating borrower record - This allows the librarian to modify any borrower information, except ID number.

Report on all borrowers - The system must generate reports and mailing lists for borrowers who have overdue books or outstanding balances. The reports should contain the following information: ID number, name, a list of overdue books, and the record balance.

In addition, the system must generate a borrower history report that includes the entire history on file for a single borrower.


All general day to day transactions between the borrowers and the library.

Lending Books - when a librarian enters the ID number for the borrower, an information screen will be displayed showing all current information about the borrower. This will include outstanding fines, books currently out, and overdue books. If there are no outstanding fines, or overdue books, then the librarian may enter book call numbers, up to the maximum number of books the borrower may borrow. All book and borrower attributes are automatically updated. For example, the due date of book, availability of book, books currently on loan to borrower, etc.

Returning Books - when a librarian enters the book call number, information about the availability of the book is updated as well as any other information regarding the book or the borrower of the book. This includes terminating the accumulation of late charges on books which are overdue. If the book is on hold, due to a recall, then the librarian should have an option to see information about the recaller of the book, so that they may be duly notified.

Renewing Books - a short way return and then lend a book for a borrower -- effectively renew it. All restrictions that apply to the lending and returning of books apply to renewing.

Recalling Books - when a librarian enters the call number of the book, a new due date will be assigned two weeks from the current day for the book. A notification form will be printed for mail out, to notify current borrower of the new due date. The librarian should then enter the ID number of the borrower recalling the book, so that when book is returned s/he may be notified.

Searching for Books - the librarian will enter as much information as is known in the following fields: Title, Author, Subject, and Call Number. A list of best matches to the given information is brought up, from which all information of a given book must be conveniently accessible.

End of Informal Specification