SDSU CS 535 Object-Oriented Programming & Design
Fall Semester, 2001
Project Description
    Assignment Index        
San Diego State University -- This page last updated 28-Oct-01




OOPSLA DesignFest 1997 Non E-Commerce Video Store Problem by Doug Bennett. com

Designing Hard Software , Doug Bennett, Manning/Prentice-Hall, 1997. ISBN 1-884777-21-X

This project is modified from the Doug Bennett's problem used in the 1997 OOPSLA design fest. Designing Hard Software by Doug Bennett uses the same problem as an example. The book Designing Hard Software is on reserve at Love Library.

Description of the Domain

ACME Video Store rents videos to retail customers. The rental period and amount of the rental varies with the time of week and the kind of video. They also rent VCRs and game cartridges. They are considering moving into CD disk and player rental, with digital audio tapes (DATs) another possibility. The store also sells a variety of general merchandise such as candy, popcorn, audio tapes, party favors, merchandise related to popular movies, and the like. Currently ACME Video has only one store.

The store keeps information on its members (customers) and uses the list for its quarterly newsletter. When videos are overdue, they try to call the customer, and if they cannot reach him or her, they send a letter. Late fees are charged for overdue items.

Management sets limits on member activities, such as the maximum number of tapes that may be held by one member before rental privileges are revoked, the maximum number of tapes in a single transaction, and the maximum number of overdue items held by one member before rental privileges are revoked.

The store has a running bonus policy, such as every 12th tape rental is free, or the second tape rented each month is free. These policies are created and changed by management.
Management is looking for a system to help manage and control the financial aspects of the business. They expect to add more stores in the future and would like any system developed now to support additional stores. They would like to add inventory control in the future.

Run Time Requirements

The system should support rental and check in operations and provide pricing of the rental items.

It should track member financial activity and track current rentals outstanding and over due items held by members.

The system should track daily income, video returns, and overdue videos, at minimum.

System Functions

Use Cases

Roles that Actors in the Domain Can Play

Sales clerk. The sales clerks answer customer questions and check out the videos and other items the customers are renting. They are also responsible for making calls about overdue videos.

Manager. The manager is responsible for tracking the performance of the store and the inventory of rental items. The manager makes the decisions about which items to add to the store, which to remove, and how to price and promote those items. The manager sets the various pricing policies used in the store.

Use Case Names and Descriptions

1. Sales Clerk Use Cases

1.1 Query inventory for a title (or actor or director). Clerk requests "Find" and fills in one or more of the following fields: title, actor, director. The system searches the inventory for a match. The list of matching items is displayed with an indication of how many copies the store has, whether any are in stock, and whether they are reserved.

1.2 Open membership. Clerk requests new member and enters the information into the system. The system verifies that the person is not a current or canceled member. It also checks to see if anyone else at the member's address is a current or canceled member. The clerk enters credit verification information. The system prints a membership card. The system creates an account for the new member.

1.3 Rent a tape in person. The clerk presses the "Rent" button and scans, or enters the item ID by entering the bar code number into the screen.

1.4 The system verifies that the item is on hand. If present, the system prompts for the customer's name. The name is verified as being a member and as not having exceeded any of the limits (maximum videos out, money owed, number of overdue items, etc.). If the name is not in the member list, the system prompts for "New Member" information: name, address, phone, and driver's license or credit card ID. The system determines the due date. Acceptable responses include a number of days or a date. The amount is shown for that item.

If the item is not present, the system indicates that the item is loaned out (and when it is due back), or that it is not carried.

As each item is entered, the system checks to see if a special applies. If it does, the modified price is shown and a message indicating which special was used is shown. There is a prompt for another item. Other items may be entered or "Total" pressed. The price and tax are shown. Clerk enters cash tendered, or credit card, and the system shows the required change. Two copies of a receipt are printed and the transaction is recorded by the system. When the clerk enters "Done," the inventory and cash drawer are updated.

1.5 Return a tape. Members return items to the desk, or for CDs and videos, may drop them off in the return box outside the store. The clerk enters the "Return" mode. The clerk enters the bar code on the item. As soon as it finds a match, the complete item identification and member identity are presented.

The item is marked returned and is returned to the storage shelf. The system updates inventory and the customer's activity status.

If the tape is late, a late charge is calculated and displayed. The clerk may ask the customer for the late fee and receive payment. The clerk selects payment, enters cash tendered. System shows change and updates the cash drawer content. If the customer is not there, the clerk indicates "Not Paid" and the system adds the late fee to the member's account.

1.6 Verify membership. The clerk asks to verify a membership. The clerk enters the customer's name. The system checks to see if the name is a current member. If one or more members with the entered name are found, the systems presents the names and addresses to the clerk. The clerk may select one of the presented customers as the current customer.

If the customer has any outstanding rentals, overdue items, or money owed (from fines), the system will indicate the number and maximum past due time on the verification presentation.

1.7 Request list of overdue items. At least once per week, a clerk will request a list of overdue items. The list consists of the name, address, and phone of the member, the overdue items, and when they were due. The list may be printed out, or the clerk may select customers and the system will write a reminder letter for each customer selected, including the items due and when they were to be returned.

2. Manager Use Cases

2.1 Request daily or weekly activity summaries. An operator with administrative permission may request activity summaries. These reports give the dollar income and number of rentals for each of the items selected for the specified time period. The user may specify items by name, director, artist, type of item, or all items. Member activity may be requested by individual member or by time period. Time periods may be specified as a single date, or week. The report may be selected as summary or detailed. Summary gives a single value for each type of item selected. A detailed report gives values for all items included in the query.

2.2 Administer members. Clerk requests "Members." Clerk is prompted for member's name. Clerk enters name and is presented with a list of members with that name, showing name, address, and family members. Clerk may select one of the names. System presents detail of member information, including tapes out, overdue, money owed. Clerk may change any personal information: address, family members that may rent, phone, or credit card info. (Only a manager may alter the account information). Clerk may select "New," in which case the system presents a blank member data screen. Clerk fills information and saves it. That member may immediately check out videos.

2.3 Administer member rental limits. A manager requests "Rental Rules." The system presents the current rules and limits. The rules have the form of setting a limit on the value of variables. The variables include the number of items rented, number of overdue items held, the longest overdue period, money owed, and the maximum items in a single rental. If no values are provided, the limit is not applied.

2.4 Request member activity. A user with administrative permission may request reports at any time. The system presents a list of available reports. The user selects "Member Activity." The system prompts for member name or ID and the time period. For the indicated member the system retrieves and presents information on the member, the number of rentals made in the last month, the number of videos currently held, the number overdue, the longest overdue period, and the rental fees paid in the last month and since he or she became a member.

2.5 Administer specials. A manager may select "Edit Specials." The system presents a list of the names of current specials. User may select one to edit, remove, or create a new one. Each special has a name and a rule for calculating whether it applies. Specials are defined as calculations and relationships between a number of predefined variables. Those variables include the day of the week, the base price, the number of items being rented, and the number of items rented in the current month by the customer.

Information Interfaces

Two sample reports.

Report Content Overdue Report

Titles Held
Overdue, days
Fine due
Smith, James
Horse Feathers
123 Maple
New York Stories
Any Town, NY 10234


Member History Report

Join Date
Total Rentals
Total Sales
Fines Paid
Fines Outstanding
Smith, J

Rules and Algorithms

    visitors since 28-Oct-01