Table of Contents


The information entered will be checked against duplicates in the database. Mistakes not corrected here can be corrected by the modify function mentioned below.

Deleting a publication

A user wanting to remove a publication from the database will have to perform the following operations on the interface to successfully delete a record. The user will click on the search button of the interface. The data fields will be cleared and they will enter the name, publisher, or distributor information of the publication to be deleted. A list of matching entries will be displayed in a scrolling list box in the lower half of the screen.

The user will then select the desired publication by double clicking on the proper entry in the scrollable list. All the data on that publication will be written to the screen in the forms fields.

The user will click on the delete button located in the button bar at the top of the screen. The user will be prompted to insure that this is the publication record they actually want to delete. If the information is to be deleted from the database the user will click O.K. button otherwise the user will cancel the operation using the cancel button, and the database will remain unchanged.

Modifying publication information

A user wanting to edit a publication record in the database will have to perform the following operations on the interface to successfully modify the record.

The user will click on the edit button of the interface. At this point the user can tab, or use the mouse to enter the data fields and change the information in them. All the data on that publication will then be written to the screen in the forms' fields.

Search on a publication

Users may wish to see information on a certain publication, or distributor. If this is the case, the user will have to use the search function following these steps to successfully retrieve this information from the database.

The user will select the search radio button. This will clear the bottom portion of the form and replace it with a scrollable list of all publications available in the database. A publication can be selected from the list by double clicking on a publication in the list, or entering information into the data fields.

Entering data into the data fields dynamically searches for matches in the database and shows the matches or close matches in the scrollable list. A search can be redone on new data, or if the search is complete the system will automatically enter the edit mode.

The Publications Interface

The publications screen consists of a form containing publication information that are discussed below, and a group of functions to manipulate, locate, or add to the database.

The upper portion of the screen contains publication information, that is the data fields that the system can search on. In the lower portion of the screen is a list of publications.

Modes & Buttons

New
The use of this function allows the user to add a new publication to the database. After clicking on the new function radio button, all remaining radio buttons but save, quit, cancel, and help are not available. Any other group of data (e.g., Customer data, Carrier data) can not be accessed until the new function is complete, or cancelled or quit.

Edit
The edit function allows the user to modify publication data, or correct data entry errors. During this functions mode, all buttons but save, quit, cancel, and help are not available. Any other group of data (e.g., Customer data, Carrier data) can not be accessed until the edit function is complete, or cancelled or quit.

Subscribe/Unsubscribe
In the lower half of the publication screen are two scrollable lists. The list on the left is a list of all publications available. On the right is a list of the publications a distributor supplies. The user can either Subscribe or Unsubscribe a publication by highlighting the desired publication then using either the Subscribe of Unsubscribe button.

Delete
Selecting to delete a publication from the database is done by clicking on the button after the correct information is displayed on the screen after a search has been completed. During this function, all buttons but save, quit, cancel, and help are not available. Any other group of data (e.g., Customer data, Carrier data) cannot be accessed until the delete function is complete, or cancelled or quit.

Search
The search mode is used to locate information on a particular publication record in the database. During this function, all buttons but save, quit, cancel, done search, new search, and help are not available. Any other group of data (e.g., Customer data, Carrier data) can not be accessed until the new function is complete, or cancelled or quit.

Done Search
This button is only available in the search mode of the system. Pressing this button after either confirming the publication information in the data field in the top portion of the screen, or selecting a publication from the list at the bottom of the screen completes the information in the lower half of the screen and automatically enters the user into edit mode.

New Search
This button is only available in the search mode of the system. Pressing this button after either confirming the publication information in the data field in the top portion of the screen is not what was intended to be searched for all data field in the screen are cleared the list is repositioned at the top, and a new search can be performed.

Save
This button closes the new, edit, and delete modes. Selecting this button updates the database with the changes that are done in the functions mentioned previously.

Cancel
Cancel lets a user escape from the function they are in without changes to the database.

Quit
This button lets the user exit from the program in any function or state at any time.

Help
Pressing the help button brings up a context sensitive hypertext help window to assist the user in correctly accessing, and manipulating the database.

Description of Data Fields


Return to Table of Contents

Carrier functions

The data base must be able to record and keep track of the carriers and the routes to which they deliver. Items recorded into the data base will be the carriers name, address, phone number, and the routes they deliver to. These records will be created and modified using functions similar to the ones mentioned in household specifications.

Adding a carrier

The user selects the function, and enters the data via the keyboard as shown in the script below.

  1. the user selects the add a carrier function
  2. enters the carriers name, e.g., Doe, John
  3. enters the carriers address
    	e.g.,	456 Center Street  (street)
    	Calgary, AB  (city, province)
    	T8W 4E5    (Canadian postal code)
  4. enters the carriers phone number, e.g., (403) 555-1234
  5. enters the routes the carrier delivers to e.g., R1 R4 R6 (route #1 route #2 route #3)

The user will be shown the entered information when finished and asked for conformation that the information is correct. Errors can now be corrected, or the function can be exited adding the information to the data base.

NOTE: If any mistakes are made in entering the data they can be corrected using the edit function described below.

Deleting a carrier

In this function the user enters or selects from a list the carriers name and performs a search to display it to the screen. The user then print the carrier routes for reassignment to other or new carriers, their routes are deleted, and finally the carrier can be removed from the data base.

NOTE: If routes are still assigned to the carrier then the carrier cannot be removed until their routes have been printed out.

Modifications to carrier information

In this function the user enters or selects from a list, the carrier's name. After which the system searches for the carrier record and display it to the screen. At this point all data fields can be accessed by tabbing to them, and reentering the correct, or new carrier information via the keyboard. This data is then saved in the data base.

Carrier Interface

The Carrier screen

You enter this screen by clicking on the "Carrier" tab on the right hand side of the screen. This window allows the user to:

  1. Add new carriers to the database
  2. View and/or change a carrier's personal information (e.g., address, phone number) and/or their subscription/delivery information
  3. Delete carriers

Add a new carrier

To add a new carrier, click "new". Then enter the following information in the appropriate fields.

A carrier can be assigned to one or more delivery route(s). In order to accomplish this, select the route ID that is to be assigned to the new carrier in the "Routes" list box on the left side of the screen. Then click "Add Route >>". Repeat this process if multiple routes are to be assigned to the carrier. All carrier's responsible route(s) will be listed in "Carries's routes" list box.

To store the carrier's information, click "Save". Otherwise, click "Cancel". Online assistance is always available by clicking "Help" and users can exit the system anytime by clicking "Quit".

Changing carrier information

Make sure the system is in Carriers mode by selecting the "Carriers" tab on the right of the screen. To modify an existing carrier's information, click "Edit". Then select the correct carrier either by typing the carrier's name or by highlighting the name in the "Carriers" list box. If the carrier's name entered is not in the database, a message will return to the user. Otherwise, the carrier's information will be displayed on the screen. Each field can be accessed with the tab key or with the mouse.

To update a personal information field, simply place the cursor in the appropriate field and type over the old data. To assign more route(s) to an existing carrier, select a new route ID from the "Routes" list box and click "->". To remove a route from a carrier, select the route from the "Carrier's routes" list box and click "<-".

To store the new information, click "Save". Otherwise, click "Cancel". Online assistance is always available by clicking "Help" and users can exit the system anytime by clicking "Quit".

Deleting a carrier

Make sure the system is in Carriers mode by selecting the "Carriers" tab on the right of the screen. To remove an existing carrier from the database, click "Search". Then select the correct carrier either by typing the carrier's name or by highlighting the name in the "Carriers" list box. If the carrier's name entered is not in the database, a message will return to the user. Otherwise, the carrier's information will be displayed on the screen. All the data displayed here is for view only and cannot be modified.

To take the carrier off the database, click "Delete". Otherwise, click "Cancel". Online assistance is always available by clicking "Help" and users can exit the system anytime by clicking "Quit".

A carrier can only be deleted when there is no route assigned to that carrier. On how to relieve a carrier's duty on a route, please refer to "Changing carrier information".

Search of carrier

Make sure the system is in Carriers mode by selecting the "Carriers" tab on the right of the screen. To display an existing carrier information, click "Search". Then select the correct carrier either by typing the carrier's name or by highlighting the name in the "Carriers" list box. If the carrier's name entered is not in the database, a message will return to the user. Otherwise, the carrier's information will be displayed on the screen. All the data displayed here is for view only and cannot be modified.

Online assistance is always available by clicking "Help" and users can exit the system anytime by clicking "Quit".

Any information which is entered on this screen is then referenced to all other databases and updates are made where appropriate. This is accomplished using the modes or buttons which are described below.

Modes & Buttons

New
The use of this function allows the user to add a new carrier to the database. After clicking on the new function radio button, all remaining radio buttons are not available. Any other group of data (e.g., Customer data, Publication data) can not be accessed until the new function is complete, or cancelled or quit.

Edit
The edit function allows the user to modify publication data, or correct data entry errors. After clicking on the new function radio button, all remaining radio buttons are not available. Any other group of data (e.g., Customer data, Publication data) cannot be accessed until the edit function is completed, or cancelled or quit.

Subscribe/Unsubscribe
In the lower half of the publication screen are two scrollable lists. The list on the left is a list of all routes available. On the right is a list of the routes attributed to a carrier. The user can either add a Route or remove a Route a publication by highlighting the desired publication then using either the Add a Route or Remove a Route button.

Delete
Selecting to delete a publication from the database is done by clicking on the button after the correct information is displayed on the screen or after a search has been completed.

Search
The search mode is used to locate information on a particular carrier record in the database. During this function, all buttons but save, quit, cancel, done search, new search, and help are not available. Any other group of data (e.g., Customer data, Publication data) can not be accessed until the new function is complete, or cancelled or quit.

Done Search
This button is only available in the search mode of the system. Pressing this button after either confirming the carrier information in the data field in the top portion of the screen, or selecting a carrier from the list at the bottom of the screen completes the information in the lower half of the screen and automatically enters the user into edit mode.

New Search
This button is only available in the search mode of the system. Press this button to initiate a new search. The data fields in the top portion of the screen are cleared, and a new search can be performed.

Save
This button closes the new, edit, and delete modes. Selecting this button updates the database with the changes that are done in the functions mentioned previously.

Cancel
Cancel lets a user escape from the function they are in without changes to the database.

Quit
This button lets the user exit from the program in any function or state at any time.

Help
Pressing the help button brings up a context sensitive hypertext help window to assist the user in correctly accessing, and manipulating the database.

Description of data fields


Return to Table of Contents

Routes

Adding a new route

When adding a new route, a route name and a carrier have to be assigned to that route. In addition a list of postal codes to define the boundaries of the route. Note that postal codes may be assigned to multiple routes (ie. the same postal code can be found in more than one route). This is to help find which route a new customer should be placed on. The postal codes, customer reference numbers, and addresses of all the households and the number of households belong to the new route are also needed.

Deleting a route

Entering or selecting a route will remove it, but a route can only be removed if there is no household in that route, i.e., the number of households is zero.

Displaying route information

When a valid route name is entered or selected from a list, the user has the option of viewing either all household belonging to the route or the total number of deliveries for each product on the current day. An error message will be displayed if the route name is invalid.

Generating a Printout

A printout which contains route name, carrier name, carrier address, carrier phone number, route household addresses and status, and the publication(s) received by each household is generated and given to the carrier before he or she makes the deliveries. The user can print either a single route or the entire set of routes or a subset of routes may be selected from a list.

Routes screen

You enter this screen by clicking on the "Routes" tab on the right hand side of the screen.

Adding new routes

The data mentioned above will be entered into fields on the computer screen. If any data fields are left blank (there will be a not applicable default for the notes field), or the incorrect format of information is entered, the system will prompt the user to enter data for all fields or correctly reenter the data in the proper format. The user will not be allowed to continue until all record fields are complete. An example of the transaction adding a new routes, and the format for the data to be entered is shown below.

  1. the user selects the new route function
  2. enter the route name
  3. enter the carrier Surname
  4. enter the carrier Given Name
  5. select the users publications from a list of publications offered by the company
  6. fill in the carrier #

NOTE: If any mistakes are made in entering the data they can be corrected using the edit function described below.

Deleting a Route

A user selecting this function would enter the Search of Route Records interface described below. The system would return the data from the search for this route in the data base, and the routes information would be displayed to the screen. The user could now choose to remove the route information from the database at this time, or exit from this function and do nothing.

Modifications to route information

In this function the user uses the Search on Route Records interface as described below, after which the system would search for the route record and display it to the screen. At this point all data fields could be accessed by tabbing to them, and reentering the correct, or new route information via the keyboard. This data would then be saved in the data base.

NOTE: Specific security measures are not required so it has been assumed that all fields of a route record can be changed at any time by any person with access to the system.

Search on route records

The user starts a search using route number, route name, carrier name and carrier number. The search finds any unique match or gives the user a list of multiple matches to select form. The list is formatted to have one result per and any data on a route not displayed will be accessible via a button click. Once a single route is selected all its information is displayed on screen.

Route Interface

Route screen

You enter this screen by clicking on the "Route" tab on the right hand side of the screen. This window allows the user to:

  1. Add new Route to the database
  2. View and/or change a Route information
  3. Delete routes

Any information which is entered on this screen is then referenced to all other databases and updates are made where appropriate. This is accomplished using three modes and nine functions which are described below.

Modes & Buttons

New
The New radio button, when selected, clears all information from the datafields and list boxes, allowing the user to enter the pertinent information into the fields. The Save and Cancel buttons are then used to either store or discard the entered information.

Edit
The Edit radio button, when selected, allows modification of appropriate fields on the screen. The Save and Cancel buttons are then again used to either store or discard the changes.

Delete
The Delete radio button, when selected, allows the deletion of the route that is currently on the screen. However, a route can only be deleted if there is no household on that route. Confirmation will then be asked of the user.

Search
The Search button, when selected, clears the bottom part of the screen and replaces it with a list of all routes specifying the criteria. The criteria being the Route ID, Route Name, Carrier, and Carrier Number that are entered as the terms of the search.

Save
The Save button will only be active when it is applicable, namely for adding a New route and Editing a route. Then, when depressed, it will store the onscreen information into the database.

Cancel
The Cancel button will also only be active when Adding a new route or Editing a current route. Then, when depressed, it will not save any changes made to the records.

Help
The Help button, when depressed, will display a help screen for information on the functions and fields of the Routes interface screen.

Quit
The Quit button, when depressed, will exit the program. If there are any unsaved changes on the screen, the user will be asked whether they should be saved.

Print
The Print button, when selected, will generate a printout which contains the Route Name, Carrier Name, Carrier Address, Carrier Phone Number, Route Household Addresses and status, and the publication(s) received by each household.

Description of data fields


Return to Table of Contents

Billing System

The Billing system is responsible for periodically updating household accounts. This function should be performed at the end of every week, and additionally at the end of each month.

This system will allow the user to display, print, or update billing information for a household or all households with a balance outstanding for subscriptions. When the billing system is started, it will ask the user if they want to generate a new set of bills for all households with an outstanding balance or find an individual household's bill, and either display or generate it.

If the user selects generate bills the system prints off a bill for each household which has an outstanding balance and returns the user to the main screen. Once a household is selected, the user will be able to view and edit the household's billing information (i.e., update their record of outstanding balance for a payment received). They can then print this household's bill out if they choose.

Summary Reports

The system will be able to produce a variety of summary reports on request from the user. All reports can be viewed on the screen or be printed out. Summary reports contain the following information:

  1. A list of total balance outstanding and number of subscribers, listed by publication, with grand totals at the bottom
  2. A daily report for each publication, with the number of subscription sales and their value, listed by route, with totals at the bottom
  3. A daily report with the number of subscription sales and their value, listed by publication, with totals at the bottom

Return to Table of Contents

Management Plan

The new management plan takes into consideration all suggestions concerning the system and previous functional specifications. All changes have been incorporated into the revised system.

The following is the information structure that we are planning on using in the proposed system. The following lists the size of and expected contents of each field for each of the major sections.

Households

Publications


Carriers


Routes


Billing Information


Note: The billing system will not be implemented with the system

Summary Reports


Functions

There are eight major functions characteristic of each interface screen. They include New, Delete, Edit, Search, Help, Quit, Save, and Cancel . These functions are described below in their generic format since all major sections will involve all of them. A more in depth description of their function per section is described above in the specifications and the interface descriptions. All data base updates will be cross referenced with the other affected data bases (e.g., adding a household, results in a route taking on a new household and an increment to a product's total delivery). This will ensure that all data bases will remain current in the event of any changes.


Project features

The proposed Newspaper Delivery system will include the following features. It will keep track of all the customers (households) of the newspaper, recording such information as the name, address, phone number, status, and money owed by the household with the option to edit and search households individually. Editing specific household information fields is possible, as well as adding and deleting all information for a household. Publications will also be listed along with their relevant information, giving the user the ability to edit information fields, add or delete publications as well as search for selected publications. The system will also keep track of carriers that will deliver the publications to the households. The user will be able to add or delete carriers as well as edit their personal information.

Households will be linked to carriers through routes, which will list items such as the name of the route and the number of households on that route and be defined by a list of postal codes (even though a household may be placed on a route though its postal code is not on that list). Through the routes, the system will allow the user to view the total number of deliveries per day to each individual route, as well as show all the households on a route. It will also be able to make print-outs per route or for an entire set of routes or a sub-set of selected routes.

Billing households will also be a part of the Publication Home Delivery System. It will list all the subscriptions, with totals and late charges and any transactions left owing. Any household's bill can be generated at request. When payments are received, it will update the outstanding balance of a customer. A summary sheet will also be available that will list the total money owed and the total number of subscriptions. Daily reports will also be available that will show the number of copies of each publication sold and their total monetary value.

There are many different implementation options for a database system of this nature. In this case, the type of implementation is assumed to be synonymous with the computer architecture required to run the system, and the software used to create the database. Firstly, we must know whether the current hardware possessed is satisfactory to run a database system of this size, or are upgrades required or already planned for. If this is the case, how much money is available for upgrades. Secondly, what level of user knowledge should be required to use the database efficiently. For example, is the system meant for a computer novice or an expert. Once this is known, a better assessment can be made of possible implementations. Regardless, here are a couple of suggestions.

Our favoured choice is an IBM compatible personal computer with the following minimum requirements: 486DX processor, 16 megabytes of memory, an SVGA monitor, 200 megabytes of free hard drive space, a tape drive for backup, a line printer, and a commercial quality laser printer. It also must have at least MSDOS 6.0 and Microsoft Windows 3.1 installed. The database program will be programmed using Microsoft Access. This options seems to make the most sense since many organizations already posses some or all of this hardware and have other uses for it such as running modern word processors, spreadsheets, etc. In addition, upgrades could be made relatively cheap and quickly.

The system needs to handle access by management, accounting, mail-room supervisors, region managers, distributor supervisors. And may be ported to affiliates in large urban centres(e.g.,. New York). Perhaps a file server, some workstation, some terminals and some network software could be added in for the final deliverable. Also a most plausible enhancement in the future would be multi-level access, so that accountants are not deleting carriers for example.

If such hardware is not possessed nor is it wanted, a package might be able to be designed for a different system. This would require much more time though, and therefore would come at a greater cost. In this case, the specific software used would be dependent of the type of computers. If an older IBM compatible is the target, something such as Lotus 1-2-3 may be practical. If the machines are UNIX compatible with a graphical operating system (i.e.. X-Windows) something such as SYBASE and TCL could be used, again at greater cost. The user's knowledge of computers becomes relevant in this case, since the result of the later options would most likely require a greater level of comprehension of databases.

We would like to point out that a few assumptions have been made with regard to some missing information. Our assumptions are based on suggestions that would make the programming easier, in the case of missing fields, to making the system conform to current industry, such as the recommendation of the hardware and software platforms. As not all the assumptions are flagged, please be sure to review the functional specifications thoroughly and decide if our proposed system meets or even exceeds your requirements.

Team Structure

The team structure was created with efficiency and high communication as the priorities. First of all, to avoid the problems that are often associated with larger groups it was decided that three smaller groups would be created. Each of these groups would represent one of the major aspects of the project which are: interface, documentation, and programming. The members for the teams were picked so that each of members strong points would be used to the greatest potential. However with the evolution of the project, the interface and programming teams became more as one so it was decided that the teams would be redivided, resulting in two groups. These new teams are as follows:


The programming team will be responsible for creating the user friendly GUI between the users and the program, as well as write the program in the selected programming language. The documentation team will be responsible for the writing of most of the documentation, such as the user manual, as well as editing and typesetting any documents that are to be placed on the Web. Note that all of the groups will interact with each other in that all members may be required to assist other groups if needed. As well all groups will participate in creating the documents.

To manage and coordinate the different needs of the teams a Product Manager was appointed and in order for there to be enough communication throughout the teams, a representative from each team was chosen. Meeting would be held with the team representatives and the product manager in order to make certain that everyone is keeping up to the schedule, there are no misunderstanding ambiguities with the project, and to make sure that any concerns and problems conceding the entire project are dealt with and solved. The selections for these positions is as follows:

Product Manager:	Mike Boonstra
Assistant Manager:	Dave Neufeld
Documentation:		Blair Whitford
Programming: 		Steve Thompson
In order to keep everyone informed of the current events, a secretarial and document manager position were assigned. The secretary is responsible for writing the minutes of the meetings and the document manager is in charge of posting this information along with all the other pertinent information, on the World Wide Web. These positions are filled by Ian Mayhood (document manager), and Sean O'Rourke (Secretary).

Every one of the team members will be involved with some aspect of the testing. Which aspect they will be involved in will be determined by the individuals strengths but not necessarily by which sub-team they are in.

Minimal System

The minimal system that will be implemented is separated into five major subject components: customers, publications, subscription, routes, and carriers. Each one of these parts will contain functions that will allow the user to add, edit and delete their perspective data. This data and the rules for its entry are covered in the previous paragraphs. There will also be various functions that allow the user to view the data of one of the subjects by individual record, and by a group of records.

There are also more specific functions. A user will be able to suspend a customers account for a specific time period or indefinitely. There will also be a function that will create a print out of the days deliveries as was specified previously.

Due to perceived time constraints this proposed system will not contain a billing system. After much discussion it was determined that the billing system was too complex to be created as scheduled. An enhancement that may be added in the future is to add a partial billing system. This would not include anything as specific as a list of payments for a particular invoice, but more likely would include enough functionality for it to work along side a separated billing system. Some the functions covered in this system would include summary showing total Money owed and total number of subscribers by publication, daily summary information showing how many copies of each publication were sold that day, ability to generate bills for households, and ability to update balances when a payment for an invoice is received.

Summary

This system when completed will be user friendly to help employees complete their everyday work, tasks, and projects. A graphical or windows interface will guide the users through the functions described by the users to keep the newspaper service running smoothly.

We believe good programming techniques, and meticulous attention to data base manipulation will make our system both efficient, and reliable so everyone can meet their goals, and get their jobs done.

Return to Table of Contents

APPENDIX A

Appendix A contains the DFD and ERD diagrams that were used to design the system. Also included in this appendix is a data dictionary that lists all the major components of the DFD and ERD diagrams.


Data Dictionary for "Publication Home Delivery System"


address = street + house + postal code
* non-key attribute of object "Households" and key	
* attribute of "Carriers"                         			

apartment number = string
* used to define "house"					
* 7 characters long						

balance = integer
* non-key attribute of "Households" 			
* if negative: credit balance to household		
* if positive: balance owing by household		

carrier = carrier info
* data flow in DFD						

Carriers = @name + @address + phone number + route info 
* object; represents the carriers currently in system	

customer number = integer
* key attribute of the object "Households"		
* n-digit integer specific to each household		

customer info = Households
* data flow in DFD; corresponds to an instance of the	
* object "Households" 					

customer = customer info
* data flow in DFD						

date = days + months
*  used to define "date suspend" 				

date suspend = date
* used to define "status"					
* date to which deliveries are suspended		

days = integer
* used to define "period suspend" and "date"		

description = string
* non-key attribute of "Publications"			
* brief description of publication				

first name = string
* used to define "name"					
* 15 characters long					

frequency of delivery = [ daily | weekly | biweekly | monthly | irregular ]
* non-key attribute of "Publications"			
* irregular -specific dates for delivery			

house number = string
* used to define "house"					
* 7 characters long						

house = [house number | apartment number]
* used to define the attribute "address"			
* 7 characters long						

Households = @customer number + name + address + phone number + status + subscription + balance + notes + route info
* object; represents the households in the system	

key descriptor = string
* non-key attribute of "Publications"			
* key-word for the publication				
last name = string
* used to define "name"					
* 20 characters long					

list of household = {Households}
* non-key attribute of "Routes"				
* list of households on route				

months = integer
* used to define "period suspend" and "date"		
* two digit representation of the months of the year	

name = first name + last name
* non-key attribute of "Households" and "Route"; key	
* attribute of "Carriers"					

note = string
* non-key attribute of "Households"			
* used for special instructions				

number of household = integer
* non-key attribute of "Routes"				
* number of household on route				

number of subscriber = integer				
* non-key attribute of "Publications"			
* 7 digit integer						

period suspend = [ days | months ]
* used to define "suspend"				
* length of time deliveries are suspended for		

phone number = string
* non-key attribute of "Households" and "Carriers",	
* also used to define "supplier"				
* string of digits in this format: (XXX) XXX-XXXX	*

postal code = string
* non-key attribute to "Routes", also used to define the	
* attribute "address"						
* 6 characters							

price scheme =
* non-key attribute of "Publications"			
* user defined schemes					

publication = publication info
* data flow in DFD	

publication info = Publications
* data flow in DFD; corresponds to an instance of the	
* object "Publications"					

publication name = string
* key attribute of the object "Publications"		
* 30 characters						

Publications = @publication name + publisher + supplier + price scheme + type + frequency of delivery + description + key descriptor + number of subscriber
* object; represents the publications available		

publisher = string
* non-key attribute of "Publications"			
* 30 characters						

range = {postal code}
* non-key attribute of "Routes"				
* list of postal codes covered by route			

route = route info
* data flow in DFD						

route number  = integer
* key attribute of "Route", also used to define "route	
* info"								

route name = string
* non-key attribute of "Route", also used to define	
* "route info"							
* 5 to 15 characters long					

route info = Route
* data flow in DFD; corresponds to an instance of the	
* object "Route" carrier info = Carrier			
* data flow in DFD; corresponds to an instance of the	
* object "Carrier"						

route info = route name + route number
* nonkey attribute of "Households" and "Carriers"	
* route to which the household or carrier belongs	

Routes = @route number + route name + range + number of household + name + list of household
* object; represents routes in system, name refers to	
* name of carrier responsible for route			

status = [suspend | not suspend]
* nonkey attribute of "Households"			
* used to determine if deliveries should be made to	
* a household						

street = string
* used to define the attribute "address"			
* 15 characters long					

subscription = {publication title}
* non-key attribute of "Households"			
* a list of publications subscribed by the household	

supplier = supplier name + phone number		
* non-key attribute of "Publications"			

supplier name = string
* used to define "supplier"					
* 30 characters						

suspend = [ date suspend | period suspend ]
* used to define "status"					

type = [ "m" | "n" ]
* non-key attribute of "Publications"			
* type of publication, "m" -magazine, "n" -newspaper	

Return to Table of Contents

APPENDIX B

Appendix B contains the 1st draft interfaces which were hand drawn and scanned. These interfaces are only an outline to the actual interfaces that will be implemented with the system.


NOTE: GLOSSARY IS PENDING, TO BE COMPLETED LATER

Return to Table of Contents

Page maintained by Ian Mayhood - 
Last Updated:  February 12, 1996