Team Project CSC481

Software Engineering

Spring 2002


PROJECT: VIDEO STORE

1. OUTLINE DESCRIPTION 3

1.1.Overview (pp) 3

1.2.Customer (jj) 3

1.3.Goals (tw) 3

1.4.Constraints (ad) 3

1.5.Functions (jl) 4

1.6.Attributes(tm) 4

1.7.Feasibility 4

1.8.Environmental Diagram (jl) 5

5

2. USE CASES 5

1.9.Typical Course of Events 5

1.10.Diagram(jl) 6

6

1.11.Register Customer (pp) 6

1.12.Query (tm) 7

1.13.Rent Video (tw) 8

1.14.Check For Late Fees (ad) 9

1.15.Return Video (jj) 9

3. CONCEPTUAL MODEL 10

4. SEQUENCE DIAGRAM 11

4.1.Rent 11

4.2.Return 12

4.3.Querry 13

4.4.Register New Customer 14

14

5. INTERACTION DIAGRAM 15

5.1.Rent 15

5.2.Return 16

5.3.Querry 17

5.4.Register New Customer 18

6. CLASS DIAGRAM 19

7. JAVA CODE 19




Jim Lynch (jl) – Pramit Patel (pp) – Joicey Johnson (jj)

Tanya Mejia (tm) – Ty Williams (tw) – Amit Dhyani (ad)

1.OUTLINE DESCRIPTION

    1. Overview (pp)

      • The software package is being developed shall allow for vastly superior efficiency and ease-of-use for rental operation in a video store. The package will optimize the store’s rental operations to surpass those of competitors and satisfy customers in renting and returning material.

    2. Customer (jj)

      • "TOROS” video store is our customer. This video store services the student body at CSUDH.

    3. Goals (tw)

      • To create a rental system that shall be efficient and reliable.

      • Acquire new customers at CSU Dominguez Hills of all ages.

      • Customer will be issued a card which clerk will swipe for account information.

      • Rent, Return, and check for late fees

      • Affordable and Popular DVD/VCR rentals for customers

      • Bar Coded Movies

    4. Constraints (ad)

      • Customer can only get two more cards for family members.

      • Customer can only rent five videos at one time.

      • Customer must pay overdue fees before they can rent another video.

      • Video store has room to hold only 10,000 movies at one time.

      • Customer must have two forms of I.D when registering as a new customer.

      • Customer must have a credit card entered in the system in order to rent videos.

      • After the video has been checked out, the customer has two days to return it.

      • Video store must have at least two employees working at any given time.

      • Video store hours are 9 a.m. to 8 p.m.

    5. Functions (jl)

      • scanners: readcusID() readviID()

      • kybrd: rentkey() returnkey() registerkey() querykey()

      • rentalSystem: registerCustomer() query() getcusID() getvidID() getcusAccount() updateRecordsrent() Return() createAccount() matchVideo() displayVid()

    6. Attributes(tm)

      • rental system: vidID cusID

      • scanner: vidID cusID

      • videoFile: vidID vidTitle renter cost

      • cusFile: cusName cusID charges latefees rent1 rent2 rent3 return1 return2 return3

    7. Feasibility

      • The functions and attributes defined can be implemented with in the cost and time constraints. The major problem with video rental systems is they do not provide the employees with simple transactions. The new rental system will provide a user-friendly interface, an easy to use menu option screen, and furnish information about customers in timely manner. The direct contribution of the proposed system will result in more business for the video store and minimal time and cost expenses on training employees to use the system

    8. Environmental Diagram (jl)

    2.USE CASES

      1. Typical Course of Events

        • A customer comes into the store. If they do not have an account we can register them and issue them a card. Then they can search for a video, rent one or return one.

        • If a customer cannot find a video on the shelf, the clerk can search the store records to see if we have that video, and if so, what is the status of that video.

        • Once a customer makes a selection, the clerk scans their store ID and the video. The customer account and the video records are updated, and the customer is given the charges.

        • When a video is returned the clerk scans the video, the records are updated (including late fees if applicable), and the video is set to return to the shelf.

      2. Diagram(jl)

      3. Register Customer (pp)

        • Actors: Clerk

        • Purpose: Add new customer to system to allow renting of videos

        • Overview: Clerk will operate system while customer gives account information. System remains idle in main menu, consisting of Register, Rent, Return, and Check for late fees. Clerk will select from main menu to register, and will submit customer information. Then the system will add this customer to the video store, and the new customer can now rent videos.

          Actor Action

          System Response

          1. Clerk is at computer system.

          1. System starts in Main Menu, waiting for clerk to select a button to perform an operation.

          1. New customer has arrived in store, and clerk selects register button in main menu.

          1. System prompts clerk to enter customer social security number and name to create an account that will be added to the system.

          1. Clerk enters the social security number and name of the customer through the keyboard.

          1. System finds no errors of the inputted information and will add this new customer account to the customer database. This account will now be ready to rent videos.


          Alternate Course:

          1. System finds an error with customer information and displays the error to the clerk and returns back to the main menu, waiting for clerk to select a button to perform an operation.

      4. Query (tm)

        • System: Video Store Information System

        • Use Case: Query for video

        • Actors: Customer, Employee

        • Purpose: To search the rental system for a video.

        • Overview: The Employee depresses the number three on the keyboard, which corresponds to the menu option; Query for video. The employee enters the video title into the rental system. The rental system then performs a search of this video title. If a video is found in the system, the rental system screen will display the video title, video Identification number, and customer identification number of the individual who is currently renting the video. If there is no such, video in the rental system, the rental system screen will display the message that no such video exists.

    Actor Action

    System Response

    1. Customer arrives at checkout desk and states the video title they wish to find.

    1. Presents a menu of options to choose from.

    1. Employee enters the number 3 which corresponds to the menu item: Query for video.

    1. Prompts the employee for the video title.

    1. Employee enters the video title into the system.

    1. Performs a search of this video title.


    1. Displays the video title, video I.D. number, renters I.D. number. If there is no renter, no renter I.D. number is displayed.

    1. Employee gives this info to the customer.


    Alternative courses

    Displays a message indicating that under the customer specifications the store does not carry the video.

      1. Rent Video (tw)

        • Use Case: Rent Video

        • Actors: Customer, Clerk

        • Purpose: To rent video to customer.

        • Overview: The customer comes to Clerk with selected video of their choice. Clerk scans membership card (by default will report any late fees or non-returned videos) followed by entering the #4 key (which is the option for rent). After entering the rent option, the system will ask Clerk to scan bar code on the DVD/Video package. System will then attach the rented item to the customer’s account, and assign a return date/time, and is removed from the inventory with a Rented/Checked out status. After check out complete without any problems system refreshes to main menu of system. Enter 1 to exit.

    Actor

    System Response

    1. The customer comes to Employee/Clerk with selected video of their choice. Clerk scans membership card.

    1. System by default will report any late fees or non-returned videos. Provided no rental issues system will continue with rental transaction.

    1. Employee/Clerk enters the #3 key (which is the option for rent)

    1. System will ask Employee/Clerk to scan bar code on the DVD/Video package.

    1. Employee/Clerk will scan bar code on the DVD/Video package.

    1. System will then attach the rented item to the customer’s account, and assign a return date/time, and is removed from the inventory with a Rented/Checked out status.

    1. Employee/Clerk will return membership card and verbally give customer the return date.

    1. After check out complete without any problems system refreshes to main menu of system


    1. Customer leaves and services next customer.



        • Alternatives: System can display message saying customer has Video/DVD that is not returned/past due and cannot rent new videos until they are returned or received. Membership card expired needs to be renewed, if money owed.

      1. Check For Late Fees (ad)

        • System: Video Store Information System

        • Use Case: Check for late fees

        • Actors: Customer, clerk

        • Purpose: To check for late fees on overdue rented videos.

        • Overview: After the customer drops off the video either during regular store hours or in the bin and it is inputted into the VSIS, the system will timestamp the day and time when video was returned and check to see if a late fee should be charged or not.

    Actor Action

    System Response

    1. Customer drops off video in the video store during normal business hours or in the video bin after business hours.


    1. Clerk takes the video and scans the barcode into the system.

    1. Displays time stamped information as to when video was checked out and timestamps when it has been returned.


    1. Checks to see if video has been out for greater then two days


    1. If video has been out for greater then two days, the system displays the total amount needs to be charged to customer for late fee.

    1. Clerk puts a HOLD on customers record, restraining the customer to check out any more videos until the late fee is paid.



    After the video has been checked out, the customer has two days to return it.

      1. Return Video (jj)

        • System: Video Store Information System

        • Use Case: Return Video

        • Actors: Clerk

        • Purpose: To return video

        • Overview: The customer drops off the video to be returned. The clerk inputs the video number into the system and the video is identified as returned

    Actor Action

    System Response

    1. Customer comes to the store to return a video or customer drops off the video in the return bin.


    1. Clerk scans the video into the system.

    1. The system checks the due date and determine the late fees if any.


    1. Gives the location to put the video.

    1. Clerk puts the video back in the shelf.

    1. System marks the item as returned.



    1. CONCEPTUAL MODEL


    1. SEQUENCE DIAGRAM

      1. Rent

      2. Return

      3. Querry

      4. Register New Customer


    1. INTERACTION DIAGRAM

      1. Rent

      2. Return

      3. Querry

      4. Register New Customer

    2. CLASS DIAGRAM

    3. JAVA CODE

    public class cusFile

    { private String cusName = initval;

    /** Customer ID number **/

    private Integer cusID = initval;

    private Double charges = 0;

    private Double latefees = 0;

    private Integer rent1 = 0;

    private Integer rent2 = 0;

    private Integer rent3 = 0;

    /** return date of video1 */

    private Date return1;

    /** * return date for video2 */

    private Date return2;

    /** * returnd date for video3 */

    private Date return3;

    /** * @roseuid 3CD6C44202AE */

    public cusFile()

    {

    }

    }


    public interface scanners

    { /** * ID scanned from customer ID card */

    private Integer cusID = 0;

    /** * ID scanned from video */

    private Integer vidID = 0;

    /** Scanner reads customer ID

    * @param cusID

    * @roseuid 3CB4B0510028

    */

    public void readcusID(Integer cusID);

    /** Scanner reads video ID

    * @param vidID

    * @roseuid 3CB4B0B70096

    */

    public void readvidID(Integer vidID);

    }


    public class videoFile

    { /** ID scanned from the video */

    private Integer vidID = 0;

    private String vidTitle = initval;

    private Integer renter = 0;

    private Double cost;

    /** @roseuid 3CD2F0E90008 */

    public videoFile()

    {

    }

    }


    public class rentalSystem

    { /** * Video ID scanned by */

    private Integer vidID;

    /** * The customer ID scanned from ID card */

    private Integer cusID;

    public rentalSystem()

    { /** * @roseuid 3CDA994F00B2 */

    }

    public void registerCustomer(String cusName, Integer cusID)

    { /** * @param cusName * @param cusID

    * @roseuid 3CB365EA0276 */

    }

    public videoFile query(String title)

    { /** * Look up movie for customer

    * @param title * @return videoFile

    * @roseuid 3CB36821001E */

    return null;

    }

    public Integer getcusID()

    { /** * @return Integer * @roseuid 3CB4B4690014 */

    return null;

    }

    public Integer getvidID()

    { /** * System gets video ID from scanner

    * @return Integer * @roseuid 3CB4B5670334 */

    return null;

    }

    public cusFile getcusAccount()

    { /** * Gets customer information

    * @return cusFile * @roseuid 3CB4B5F300A0 */

    return null;

    }

    public void updateRecordsrent()

    { /** videoFile.renter = c_id

    cusFile.charges = videoFile.cost + cusFile.latefees

    cusFile.rented1= v_id

    cusFile.return1 = current date + 2

    * @roseuid 3CB4B7FF01E0 */

    }

    public void Rent()

    { /** * @roseuid 3CB4BA3502C6 */

    }

    public void displayCus(int cusFile)

    { /** * Displays the Customer File.

    * @param cusFile* @roseuid 3CBC00A9003C */

    }

    public void updateRecordreturn(int argname)

    { /** * cusID = videoFile.renter

    * videoFile.renter = 0

    * customer.latefees += (currentdate - returndate) * 5

    * //if current date is not less than return date

    * customer.rent = 0

    * customer.return = 0

    * @param argname

    * @roseuid 3CBC04FB024E */

    }

    public void Return()

    { /** * @roseuid 3CBC08570294 */

    }

    public void createAccount()

    { /** * Get and input customer information

    * @roseuid 3CBC0A090384 */

    }

    public videoFile matchVideo(String title)

    { /** * System searches the files for a matching string (video).

    * //Sample code

    * for(int i = 1; i<file.length;i++)

    * { if(string = title)

    * return vidfile(i);

    * }

    * @param title * @return videoFile

    * @roseuid 3CBC0B470140 */

    return null;

    }

    public videoFile displayVid(String title)

    { /** Displays the Video File. * @param title

    * @return videoFile * @roseuid 3CC532FC0230 */

    return null;

    }

    }


    public interface kybrd

    { /** * @param four * @roseuid 3CB36B320050 */

    public void rentkey(int four);

    /** * @param argname * @roseuid 3CB36C08003C */

    public void returnkey(int argname);

    /** * @param argname * @roseuid 3CB36C3E0186 */

    public void registerkey(int argname);

    /** * @param argname * @roseuid 3CB36C7F008C */

    public void querykey(int argname);

    }

    CSC481 Semester Project: Video Store Page 22 of 22