VoidWorks Software Inc. Overall Design Complete Document |
Springfield Library would like to thank VoidWorks Software Inc. for their proposal for a library management system. While it appears most of our customer and book management requirements have been met, we seek further clarification with regard to the Overall Design Document.
Before negociating a final contract, there are several issues we need to have
addressed:
Specific areas of concern have also been annotated in red, italicized font throughout this document.
|
Summary |
Module Definitions |
The module definitions described in this document are set out as follows: |
|
Data Stores |
The data stores we have implemented for this system are as follows:
|
The following data stores will be implemented if there is a need to
be constantly modifying the information contained within them - otherwise
that information will be hardcoded into the system
|
|
Overview |
The Book Admininstration module will have a window displaying five main features, which buttons will be assigned to implement its certain task. There will be 'Add Book', 'Add Book Copy', 'Delete Book Copy', 'View Book', 'View Book Copy' buttons, and a QUIT button to do none of the above tasks. The 'Add Book' button will take the user to a window where the user can add a book. Similar with 'Add Book Copy' but the user will be adding a book copy instead. 'Delete Book Copy' will display another window that allow the user to delete a book copy. 'View Book' button will allow the user to view and/or modify book information. 'View Book Copy' button will alow the user to view and/or modify a book copy. |
Data Flow Diagrams |
These are clickable imagemaps. |
Level 1 |
Level 2 |
Add a Book |
Inputs |
How are keywords delimited? This will be important to the data entry clerks. Which "three" of Book, CD, CD-ROM, Film, Laserdisk and Journal will be included in the pull-down menu? Since all six of these media types are currently used in our library, it is essential for them all to be listed as menu options. |
Title, Author, Publisher and Category should be case-sensitive.
Outputs |
Upon acceptance and verification of the book data the book will be added to the database. |
We will need verification from the system to tell us when transactions are OK.
If an unrecoverable error (such as read write errors to the database) occurs the module will output the error code to the error handling module. |
What happens if there is a read/write error to the database? Will the database be in the same state as before the error occured? Should this kind of error be reported to an administrator?
A unique call number will be automatically generated by the system for the book. |
Number of copies will be automatically set to one by the system once the book has been added. |
Imports |
From automatic generator |
|
NOTE: The automatic generator will generate a unique integer for the call number for that particular book. The value will be in sequential order ranging from 0 - 999999999. The number of copies will be set to 1 when the book is originally added. |
Error conditions |
Syntax errors on inputs to the fields with required formats. |
Input missing from field. (All necessary fields must be complete) |
Book already exists in the database. |
Description |
|
Walkthrough |
The user fills in the appropriate data into the data fields and presses the 'ADD' button. If there is an error in one or more of the fields or the ISBN number is already in use, these errors are displayed in an error window once the ADD button has been pressed. Once all errors are corrected (if there were any), the ADD button is pressed to add the new book to the database. If at any time the user wishes to leave, clicking on the QUIT button will exit them from the 'Add Book' window. |
Add Book Copy |
Inputs |
|
Outputs |
Upon acceptance and verification of the ISBN number, the following will be display in a window: ISBN #, title, author, publisher, subject, book category, media type, cost of book, version, edition. |
If an unrecoverable error (such as read write errors to the databse) occurs the module will output the error code to the error handling module. |
Imports |
From Books data store
|
From automatic generator
|
NOTE: The automatic generator will generate a unique integer for the call number for that particular book. The value will be in sequential order ranging from 0 - 999999999. The number of copies will be set to 1 when the book is originally added. |
Error conditions |
Syntax errors on inputs to the fields with required formats. |
Input missing from field. (ISBN number not specified.) |
Book does not exist in database. |
Description |
|
Walkthrough |
The user fills in the ISBN number of the book that he/she wants to add a book copy to and presses the 'OK' button. If there is an error with the syntax of the ISBN number or the ISBN number cannot be found in the database, these errors are displayed in an error window. Once all errors are corrected (if there were any), the 'OK' button is pressed at which time the data for the book that will have a copy added is displayed. The user then preoceeds to enter in data for the appropriate fields and presses the 'ADD' button. If there are any errors with the data added, this will be displayed in an error window. Once all errors are corrected (if there were any), pressing the 'ADD' button will add the book copy to the database. If, at any time, the user wants to leave, clicking on the respective QUIT or CANCEL buttons will exit them from the window. |
Delete a Book Copy |
Inputs |
|
Outputs |
Upon acceptance and verification of the ISBN number, the following will be display in a window: ISBN #, title, author, publisher, subject, book category, media type, cost of book, version, edition, call number, location, floor, circulation status, due date (if any), and customer number (if any). Once a user accepts to proceed with the book's deletion, the book will be removed from the database. |
If an unrecoverable error (such as read write errors to the database) occurs the module will output the error code to the error handling module. |
Imports |
From Books data store
|
From loans data store
|
From customer data store
|
Error conditions |
Syntax error on input to the call number field. |
Input missing from field. (Call number not specified.) |
Book does not exist in database. |
Book is out on loan or is on hold. |
Description |
|
Walkthrough |
The user fills in the call number of the book that he/she wishes to delete and presses the 'Delete' button. If there is an error with the syntax of the call number or the call number cannot be found in the database, these errors are displayed in an error window. Once all errors are corrected (if there were any), the DELETE button is pressed at which time the data for the book to be deleted is displayed, and the the user is asked whether the deletion should proceed. If the user selects the 'YES' button, the book will be permanently removed from the database. If the user wants to go back without deleting the book, the 'NO' button should be pressed. If, at any time, the user wishes to leave, clicking on the QUIT button will exit them from the 'Delete Book' window. |
View a Book |
Inputs |
|
Outputs |
Upon acceptance and verification of the ISBN number, the following will be display in a window: ISBN #, title, author, publisher, subject, book category, media type, cost of book, version, edition, call number(s), location(s), floor(s), circulation status(es). |
If an unrecoverable error (such as read write errors to the databse) occurs the module will output the error code to the error handling module. |
Imports |
From Books data store
|
Error conditions |
Syntax error on input to the ISBN number field. |
Input missing from field. (ISBN number not specified.) |
Book does not exist in database. |
Description |
|
Walkthrough |
The user fills in the ISBN number of the book that he/she wishes to view. If there is an error with the syntax of the ISBN number or the ISBN number cannot be found in the database, these errors are displayed in an error window. Once all errors are corrected (if there were any), the VIEW button is pressed at which time the data representing that ISBN number is displayed. From there, the user may choose to modify and save the data (see section 4(a) Modifying a Book). Clicking on any QUIT button will exit the user from the window he/she is in. |
a) Modify a Book |
Inputs |
|
(Note: ISBN # was already entered as an input from previous module - View a Book) |
Outputs |
Upon acceptance and verification of the book data the book information will be modified and saved to the database. |
If an unrecoverable error (such as read write errors to the databse) occurs the module will output the error code to the error handling module. |
Imports |
none |
Error conditions |
Syntax error on input to the cost field. |
Input missing from field. |
Description |
|
Walkthrough |
The user clicks on the 'MODIFY' button, thus allowing the user to edit/modify book information. The user then can modify the appropriate data of the data fields and press the 'SAVE' button. If there is an error in one or more of the fields these errors are displayed in an error window once the 'SAVE' button has been pressed. Once all errors are corrected (if there were any), the 'SAVE' button is pressed once again to save/update any changes made of the book information into the database. If at any time the user wishes to leave, clicking on the QUIT button will abort the modification of book information. |
View Book Copy |
Inputs |
|
Outputs |
location, floor, circulation status |
Upon acceptance and verification of the call number, the following will be display in a window: ISBN #, title, author, publisher, subject, book category, media type, cost of book, version, edition, call number(s), location(s), floor(s), circulation status(es). |
If an unrecoverable error (such as read write errors to the databse) occurs the module will output the error code to the error handling module. |
Imports |
From Books data store
|
From loans data store
|
From customer data store
|
Error Conditions |
Syntax error on input to the call number field. |
Input missing from field. (call number not specified.) |
Book copy does not exist in database. |
Description |
|
Walkthrough |
The user fills in the call number of the book that he/she wishes to view. If there is an error with the syntax of the call number or the call number cannot be found in the database, these errors are displayed in an error window. Once all errors are corrected (if there were any), the VIEW button is pressed at which time the data representing that call number is displayed. From there, the user may choose to modify and save the data (see section 5(a) Modifying a Book Copy). Clicking on any QUIT button will exit the user from the window he/she is in. |
a) Modify Book Copy |
Inputs |
|
(Note: call number was already entered as an input from previous module - View Book Copy) |
Outputs |
Upon acceptance and verification of the book data the book copy information will be modified and saved to the database. |
If an unrecoverable error (such as read write errors to the databse) occurs the module will output the error code to the error handling module. |
Imports |
None |
Error conditions |
Syntax errors on inputs to the fields with required formats. (i.e. invalid number range for floor number) |
Input missing from field. |
Description |
|
Walkthrough |
The user clicks on the 'MODIFY' button, thus allowing the user to edit/modify the book copy information. The user then can modify the appropriate data of the data fields and press the 'SAVE' button. If there is an error in one or more of the fields these errors are displayed in an error window once the 'SAVE' button has been pressed. Once all errors are corrected (if there were any), the 'SAVE' button is pressed once again to save/update any changes made of the book copy information into the database. If at any time the user wishes to leave, clicking on the QUIT button will abort the modification of the book copy information. |
|
Data Flow Diagrams |
These are clickable image maps. |
Level 1 |
Level 2 |
Add Customer Module |
Input |
First and Last names should be case-senstive. Maximum books defaults to twenty five books per customer. The default value can be modified by the supervisor, not the customer. Maximum fine defaults to ten dollars per customer. The default value can be modified by the supervisor, not the customer. |
Outputs |
Upon acceptance and verification of the customer data the customer will be added to the database. |
If an unrecoverable error (such as read write errors to the database) occurs the module will output the error code to the error handling module. |
Recoverable errors (such as duplicate customer) will be dynamically handled by this module through user interaction. |
Error Conditions |
Syntax errors on inputs to the fields with required formats. |
Input missing from field. (all fields must be complete) |
Customer already exists in the database. |
A change to the default values for Max Books, Max Fines or Restricted with out the valid supervisor password. |
Hardware error is an unrecoverable error that will be processed by the error module. |
Description |
|
Walkthrough |
The librarian inputs all of the customer's information in the appropriate fields. The librarian selects the 'Add' button to add this customer to the database. If there is a duplicate name in the database, the librarian can shrink the results list by inputting additional information for other fields (such as phone number) and then pressing the 'Search' button. By looking at the duplicate names list, the librarian can decide to continue to add the customer by pressing the 'Yes' button or discontinue by pressing the 'No' button. If the librarian modified restricted information, the approval of a supervisor will be required. |
Search Customer |
Inputs |
|
Outputs |
If an unrecoverable error (such as read write errors to the database) occurs the module will output the error code to the error handling module and discontinue the process. |
With success, a list (also displayed on this screen) of the exact matches to the input criteria. This list will contain the First and Last Name and Telephone number. |
Selecting an entry from the list (either by single click on the entry and then pressing the select button or by double clicking on the entry) will display the View/Update customer screen with the selected entry filled in. |
Error Conditions |
Hardware error is an unrecoverable error that will be processed by the error module. |
Format errors in fields that impose a structure on the input. |
Description |
|
Walkthrough |
Librarian enters the search criteria in the appropriate fields following the correct format. Librarian clicks on the 'Search' button. Search will return a list that matched the criteria. Librarian can either double click an entry or single click and then select 'Select' to display the View/Update screen. If the Librarian selects another entry the View/Update screen will be refreshed. To print or save the list the librarian need only select the appropriate button. When Finished the user selects 'Quit'. |
View/Update |
Inputs (obtained from the Search Customer module) |
|
Outputs |
Upon acceptance and verification of the customer data the customer will be modified in the database. |
If an unrecoverable error (such as read write errors to the database) occurs the module will output the error code to the error handling module. |
Recoverable errors (no modifications made) will be dynamically handled by this module through user interaction. |
Error Conditions |
Syntax errors on inputs to the fields with required formats. |
Input missing from field. (all fields must be complete) |
A change to the default values for Max Books, Max Fines or Restricted with out the valid supervisor password. |
Hardware error is an unrecoverable error that will be processed by the error module. |
Modify requested with no changes made. |
Description |
The View/Update module will allow the librarian to look at and or modify the customers last name, first name, phone number, address, city, province, postal code, country, max books and max fines. The user will also see all of the books that the selected customer has on load or on hold and be able to print this along with all of the information about the customer. The user will also be able to permanently remove a customer from the database. |
Buttons present: UPDATE, PRINT, SAVE, REMOVE, QUIT |
|