President's Choice Software

Functional Specification
User Interaction

 


Contents                              
 

 


Introduction                              
 
Screen
Shot
The Library Management System (LMS) being developed for the Springfield Public Library has been broken down into three main parts:
     
  1. Book administration section
  2. Customer administration section
  3. Transaction administration section

In this introduction navigational dialog, it seems that a lot of the space on the dialog is wasted. Larger buttons for the three main selections would be a nice touch.
Screen
Shot
Upon startup of the system, the user will be required to enter a name and a password. Once the user's login has been validated, the system determines if the user is a supervisor or a librarian. A librarian will be allowed access to all of the features of the library management system unless otherwise specified (example see the setting of the customer max fine and max books specification), while a supervisor will be given complete access to the system including all functions and information. The supervisor will also be given the ability to add new librarians and new supervisors to the system through a selection on the main screen.

The login dialong looks great. Nice and simple.

 

Hardware / Software Requirements                              
     The LMS will be designed to be run on IBM compatible machines running Microsoft Windows '95. The PC will be required to have at least a 486 DX-33 with 16 MB RAM. Storage space depends on the amount of information that needs to be stored. For the Springfield Library, 3 or more Gigabytes is recommended (the large size is due in part to the need to back-up large amounts of data).

 

Help System                              
     Help on using the system is available at any time simply by pressing the help button on the current screen. The part of the help file pertaining to where in the program help was requested will be displayed.

 


1. Book administration                                   
 

 

General information                              
Screen
Shot
The book administration section is responsible for the maintenance of information about books currently in the library. Both librarians and supervisors have access to this section, which allows them to:
     
  1. Add books to the library
  2. Delete books from the library
  3. Update library book information
  4. Search for books in the library

On the Book Administration dialog, we would like to reorder the buttons in the order that they will most frequently be used. The order we would like is
  1. Search
  2. View Book
  3. View Copy
  4. Add
  5. Remove
  6. Update Book
  7. Update Copy

 

Add a book                              
Screen
Shot
First the user will be asked to input an ISBN number. If the information about the book with the specified ISBN number is found, the librarian will be allowed to either modify the information on that book or continue to add book copy information to the database system .

This was an excellent dialog. The layout is visually very pleasing and simple yet the dialog contains a lot of power. The new buttons on the sides of Subject, Book Category, and Media Type were ingenious.

Outstanding.


     If the information about the book with the specified ISBN number is not found, then the librarian will be prompted to input the necessary information about the book into the system. The information that will be required is as follows:
     
Title of the book
A string with a maximum length of 100 characters.
Author of the book
string with a maximum length of forty characters. The author name should be formatted as follows:
Last Name, First Name
If there are multiple authors, each should be separated by a semicolon.
Publisher
A string with a maximum length of 40 characters.
Subject
A subject search term that corresponds to the subject of the book. These unique search terms will be defined by the customer group. New search terms may be added simply by pressing a button next to the subject entry position and typing the new possible subject term.
Book category
A selection from a list containing the choices of Overnight, Two Week Loan, and Reserved. More selections can be added by a similar method to adding a new subject. By pressing a button next to the book category, the librarian will be prompted for a new book category.
Media type
A selection from a list containing Book, CD, CD-ROM, Film, Laser-disk, Journal, or Cassette. New selections can be added by pressing a button next to the media type entry and entering the new media type.
Cost of the book
A monetary value for the price of replacing the book in Canadian dollars. Negative values are not possible.
Version
Optional field to specify the version of the book that this information pertains to.
Edition
Another optional field to specify the edition of the book that this information pertains to.
     After entering the book information (or if the information has already been entered previously), information on the copies of the given book will be entered.
     Librarians will be asked to enter the following information:
     
Number of copies
A number for the total number of copies that will be added at once. Negative numbers of copies can not be added.
Location
A selection from a list of possible locations. Begins with only the selection of Central Branch but new locations may be added by pressing a button next to the location entry and entering the new location name.
Floor
The floor number where the copy or copies of the book can be found. The only limit on the floor number is that it cannot be negative.
Circulation status
a selection from a list of possible choices including On Loan, Overdue, on Hold, Available, or Out-of-Circulation.
     New circulation statuses can be added like adding a location.
     Upon completion of adding the information for a copy or copies of a book, a new, unique call number will be assigned to each book. After completing the entry of the information the librarian will be given the following options:
     
  1. Add the book copies to the database
  2. Add the book copies and print the book information
  3. Cancel the book adding operation.

 

Delete Book                              
     Librarians have the ability to remove a copy of a book from the database by calling the delete book procedure. This does not remove the information about a book from the database but instead only deletes the specific book copy information. The book information such as the ISBN number, title and author etc cannot be deleted and has no effect on the inventory of the library. A book copy cannot be deleted while it is on loan.
     When deleting a book, the librarian needs to input only the call number of the book. If the unique call number is not known or invalid, the librarian will be allowed to search for the book by entering search criteria and selecting from a list of the books that match.

 

Book Administration: Search for a book                              
Screen
Shot
Searching through the books in the library system is done by using a number of search criteria. When the librarian initiates a search, he or she will be presented with a blank form with the available search criteria edit boxes empty. By filling in the criteria box with a search term, the librarian will ask the system to provide a list of all of those book copies in the library that match or partially match the criteria specified. There are certain criteria which require a complete match, as indicated below. Those which require only a partial match will allow all of those entries with a portion of the selection identical. Leaving a criteria box empty will mean that all values found should be returned. The librarian can initiate a search based on the following criteria:
     
  • ISBN number (complete match)
  • Title (partial match)
  • Author (partial match)
  • Publisher (partial match)
  • Subject (complete match)
  • Book category (complete match)
  • Media type (complete match)
  • Cost of book (range value such as >$50)
  • Edition (complete match)
  • Version (complete match)
  • Call number (complete match)
  • Circulation Status (complete match)
  • Location (complete match)
  • Floor (complete match)
     These subject terms can be used in any combination. If the librarian wants to search for all journals from a specific author on a certain subject, the librarian would only fill in those fields and leave the others empty.
     The result of this search will return a listing of all of those entries in the book information tables that match the searching criteria. These lists generated by the searching can be saved or printed out in the form of a report. By selecting one of the books listed and choosing to view details, a more detailed report on a specific book and all of its copies can be obtained. This is the same report that is generated by using the View a book command in the book administration menu.

The search for a book dialog was done very well. It looks very usable.

The New buttons however are not needed on this dialog as when a user is searching, he will not be adding new categories. These buttons seem to convey the wrong message about dialog's purpose. Also, instead of having the relation group box for the cost field, we feel it would look better to have two edit boxes, one for the min price of a book and one for the max price of a book. This way a user could search for books within a given price range.


 

View A Book                              
Screen
Shot
Takes as input an ISBN number and returns to the user a detailed report of the book that matches the ISBN number. This report contains the following:
     
  • ISBN number
  • Title
  • Author
  • Publisher
  • Subject
  • Book category
  • Media type
  • Cost of book
  • Version
  • Edition
     A listing of all of the copies of the book will be included with the report in the form of a table, which will include the:
     
  • Call number
  • Location
  • Floor
  • Circulation status
     This detailed information can also be saved and printed as a report.

The 'view a book' dialog looks great. We especially like the ease of navigation that the grid control at the bottom provides. It is very easy to view copies of other books and to update them. That was a very creative user interface idea. We love it.


 

View Book Copy                              
Screen
Shot
The librarian has the ability to view a single book copy by inputing the call number of the book. If the call number of the book is not known, the librarian will be given the opportunity to search for the book by ISBN number or book title. If the book is not found, a message telling this to the librarian will be given.
     The following information will be available when a book copy has been found:
     
Call Number
Call number of the book copy
ISBN Number
ISBN number of the book copy
Location
Building where the book copy is located
Floor
Floor on which the book copy is located
Circulation Status
Current status of the book copy
     Along with this, a table of the book information will be displayed at the top of the screen including:
     
  • Title
  • Author
  • Publisher
  • Subject
  • Book Category
  • Media Type
  • Cost of Book
  • Version
  • Edition
     Each book copy report will also display who currently has this book copy on loan (if any) and who has this book copy on hold (if any). A more detailed information screen on these customers is also available by pressing a button.

Very flexible user interface. Excellent work.
     This information can both be saved or printed at the press of a button in the form of a report.

Update a book                              
     Updating a book can be done in two ways:
     
  1. Update the book and book copy information using an ISBN number
  2. Update a copy using a call number
     When updating using an ISBN number, the librarian will input the ISBN number and a form with the book's information will be displayed along with a list of those book copies currently in the library. The librarian will be able to change the following information about the book:
     
  • Title of the book
  • Author of the book
  • Publisher
  • Subject (changed by selecting a new subject from a list or adding a new subject type to the list)
  • Book category (changed in the same way as the subject)
  • Media type (changed in the same way as the subject)
  • Cost of the book
  • Version
  • Edition
     The librarian will also be able to modify the following book copy information:
     
  • Location (changed by selecting a new location from a list or adding a new location to the list)
  • Floor
  • Circulation status (changed in the same way as the location)
     (Note: the ISBN number of a book and call number of a book copy cannot be changed).
     When updating using a call number, the book copy information will be displayed and the librarian will be allowed to change the following:
     
  • Location (changed by selecting a new location from a list or adding a new location to the list)
  • Floor
  • Circulation status (changed in the same way as the location)
     (Note: the call number of a book copy cannot be changed).

The Book Adminstration section of the functional spec seemed to match our spec exactly. All of the required functionality seems to be there. We couldn't have created a better visual interface if we had done it ourselves.

 


2. Customer administration                              
 

 

General Information                              
Screen
Shot
The customer administration menu is used by the librarians to:
     
  1. Add a new customer
  2. Delete a current customer
  3. Maintain information about the users of the library.

The 'Customer Administration' navigational dialog is good.

 

Add A Customer                              
Screen
Shot
Adding a customer is done by filling out a form with the new customer information. The following information is required:
     
Last Name
A string with a maximum length of 60 characters. This does not need to be unique to each customer (ie. more than one customer can have the same last name).
First Name
A string with a maximum length of 40 characters. This does not need to be unique to each customer (ie. more than one customer can have the same first name).
Phone number
A standard North American phone number. When entering the phone number, if the entry begins with a '(' character, the system will require the entry of a three digit area code. If on the other hand, the phone number begins with a number, no area code will be accepted. The phone number is in the format of either:

(3 digit area code) 3 digit local exchange-4 digit number

Example: (403) 220-5076

or

3 digit local exchange-4 digit number

Example: 220-5076
Address
A string with a maximum length of 100 characters. This address line does not separate the individual parts of the customer's address into their respective components such as street address, city, province, country, postal code.
Category
A choice of regular, librarian, or supervisor. Extra category selections cannot be added.
Fines
A monetary value listing the total accumulated fines to date. This will be calculated upon requesting the individual information about the customer.
Max books
The maximum number of books the customer can borrow. This field can only be modified by a user with supervisor status.
Max fine
The maximum amount of fines the customer can have. Like the max books, this value can only be modified by a user with supervisor status.
Restricted
Specifies whether or not the customer can borrow. Calculated automatically by the system when the customer's fines exceed the maximum amount allowed. The number of books the customer currently has on loan cannot exceed the maximum number of books allowed.

We have to be able to change the restricated access flag of a customer as well. If a customer informs us his card has been stolen, we will have to be able to set a user as restricted manually.
     Once added, the customer will be assigned a unique user ID number which can be used to specify who takes out a specific book.
     If the customer that is being added already exists in the system, the customer will not be added again and a message informing the librarian will be displayed.
     Cases where two customers have the same first and last names are allowed, providing each has a different address and phone number from the other. Otherwise, the new customer will not be added.

The add a customer dialog looks great. The "New" button is nice touch, once again. Visually very well organized. Would a supervisor be able to use this same interface to modify a new customer's Max Fines and Max Books attributes? We would like supervisors to be able to do this.

 

Remove A Customer                              
     The librarian removes a customer by inputing the user's unique ID number. Should the librarian not know the user ID or the user ID being input is invalid, the librarian will be asked if he or she wants to search for a customer by name or phone number.
     The librarian will be asked if he or she really wants to delete the customer. If he or she cancels the action, the customer will not be removed.
     Once a customer has been removed from the database there is no way of returning except to re-enter the information.

Please make sure a warning is issued when a user tries to delete a customer that has books on loan or any outstanding fines.

 

Modify A Customer                              
     To modify a customer, the librarian will input the user ID number of the customer. Once again, if the user ID is not known, the librarian will be given the opportunity to search for the customer by name or phone number. Once found, the following attributes can be changed:
     
  • Name
  • Phone number
  • Address
Security NoteSome Customer properties can only be changed by a supervisor. These include fines, max books, and max fine. If an attempt is made to change any of these properties by a librarian or regular user, the system will prompt for a supervisor to enter his or her name and password.

Nice touch. This is another great innovation.

 

View A Customer                              
     Viewing a customer is done by inputing the user ID number. If the ID number is not known or incorrect the librarian can search by the name or phone number of the customer. Once a single customer has been found the following information will be displayed onto the screen:
     
  • Name
  • Phone number
  • Address
  • Fines
  • Max books
  • Max fines
     Along with this individual information on the customer, a table containing the book information on all of the books on loan by or on hold for this current customer. This information can then be printed or saved to a file in the form of a report.

 

Searching Customers                              
Screen
Shot
Searching the customer database can be done based on a number of criteria. The method of entering this criteria can be input in a manner similar to searching for books. These can be used in any combination and the resulting customers that match those criteria will be displayed in a table which can be saved or printed. The following criteria can be used:
     
  • Name
  • Phone number
  • Address
  • Max books
  • Max fines
  • Circulation status
     The circulation status field will return all those customers who have loans which match the specified criteria such as books On Loan.
     If no matching customers are found, the resulting list will be empty.
     This information can be saved and printed in the form of a report with the press of a button.
Note(Information on the fines for a particular customer will not be displayed here. This is because that information will need to be calculated for each individual customer. As a result, the time needed to recalculate this for each entry in the list would exceed the requirements specified. For information on the fines for an individual customer, that customer must be specified).

This seems like a valid assumption.

 


3. Transaction administration                              
 

 

General Information                              
Screen
Shot
The transaction administration menu is used to maintain information on the loaning of books by customers in the library system which include:
     
  1. Borrowing a book from the system
  2. Returning a book to the system
  3. Renewing a book in the system
  4. Putting a book in the system on hold

Is there some facility to cancel holds on books? This is a required feature and seems like it would fit on this dialog. Please add it.

 

Borrowing A Book                              
Screen
Shot
When a customer borrows a book, the librarian will be required to enter the unique user ID of the borrower. If the user does not have an ID there will be a button that can be used to directly add a new customer and use the new ID number without having to leave the borrowing of a book screen. If the user ID number entered does not exist, the librarian will be given a chance to search by name or phone number, or enter a new customer.

Very user friendly interface. This is a perfect place to add new customers. Also, we think being able to search for custoemrs from this dialog will make it a lot easier to use as well.

It would be nice to have a temporary place to enter the call numbers of the books to borrow. We know this dialog will be hooked up to our scanner eventually, but in case of break downs or something it would be handy to be able to manually enter Call numbers of borrowed books.


     If the customer is not able to borrow the book, a message explaining the problem will be displayed to the librarian and the transaction will be cancelled.
Customer's ReportOnce the book is borrowed, the librarian will be given two choices: print a report of the transaction and exit or simply exit. The report will contain information on who borrowed the book, the book copy information, when the book is required to be returned and the cost of not returning the book on time. Information about the library (including the address and phone number) will also be included. This report is intended to be given to the customer when he or she borrows a book.

Nice job. This is exactly what we need.

 

Returning A Book                              
     Whan returning a book the librarian will just enter the book's call number. The database will be updated, and the system will check if that book has been placed on hold. If so, a message will be displayed containing the holder's:
     
  • Name
  • Phone number
  • Address
     The librarian then has the option of printing this information and leaving or just leaving this screen.

 

Renewing a book                              
     A renewal is handled in the same manner as returning a book except that if the book is not on hold, it will automatically be borrowed by the same customer again.
     The librarian will be asked to enter the call number of the book that will be renewed. The customer ID number is not required because the book will simply be returned then borrowed again by the previous borrower.
     The same report that is generated when a customer borrows a book will be generated by renewing the book if the librarian requires. The librarian will be given the opportunity to print this report and exit or just exit the screen.

 

Putting Books On Hold                              
Screen
Shot
To put a book on hold, the librarian must input a call number (if not known, the call number can be looked up by ISBN number or book title) as well as a user ID number (if not known, the user ID number can be looked up by customer name or phone number).
     If the ISBN number or user ID number are not valid, the new book and/or new customer can be added directly.
     If the book cannot be placed on hold (due to it being reserved or the customer having too many on hold) a message will tell the librarian about this circumstance.
     Once the book has been placed on hold, the librarian has the option to either exit the screen or print a report on the held book.

See the comment above about being able to manually enter call numbers. Also, see a previous comment about being able to cancel holds. We didn't see a dialog for this feature. Make sure that a book copy cannot be held simulataneously by two people.

Send mail to the Group Leader or the Webmaster
Back to the Main Page


The user interface portion of the functional specification was very well done. We found the screens easy to understand and easy to use. They will make our library tasks much easier.

General Changes

A single book may have multiple subjects. It seems from the 'Add a Book' and 'Search for a Book' dialogs that books are associated with only one subject. We would like some way to be able to relate books to more than one subject.

The ability to save text files is an unnecessary part of the system. Allowing the user to generate reports visually and print them as well will be enough functionality.

It would be nice to have one dialog for adding codes to any of our code sets. These include things like

  • BOOK: Subject
  • BOOK: Category
  • BOOK: Media Type
  • BOOK: Circulation Status
  • BOOK: Location
  • CUSTOMER: Category