Software Requirements Specification

Computer usage and Internet access has become a common figure of many people’s daily lives, and more people are connecting themselves to Internet from home or other places. Because of this, shopping on-line has become easier than ever. Customers will not need to wait until the store open to buy a book, rent a car, or even get their grocery. Based on this idea, we propose to develop an on-line video rental system that can benefit both customers and video store management.

There's a specialist from your university waiting to help you with that essay.
Tell us what you need to have done now!


order now

The primary function of the on-line video rental system is to allow customers reserve and rent videos at anytime and anywhere as long as they can access to the Internet. Unlike traditional video rental system, on-line video rental system enables customers searching their favorite movies through store’s on-line database at home or anywhere they may like and make the rental at anytime they may like, even in the middle of the night. In addition, the on-line video rental system is automatically control by computer; therefore it can also reduce video rental company’s management overhead.

Our on-line video rental system will incorporate three basic applications – a web based client application, a server application built with Java Servlet, and a database hosted by an Oracle server. JDBC will be used to communicate between the server application and the Oracle database. 1. 1 Scope and Objectives The primary functions of this site will use the Internet for making reservation with customers to automate an online rental video service. This system will be a client-server system in which there are four entities: Users, Web Application, server application, and Database.

The User is an actor that communicates with the web application through a GUI using a web browser. The Web Application consists of a web site that will be freely accessible to anyone who possesses a web browser and Internet access. Customers will click on links to select from the following options: create customer account, login, logout, view customer reservation status, and update a profile, search and reserve video. Server application will provide communication between web application and database. For administrators, the server application will be used to update inventory database, managing customer accounts, etc.

For users, the server application will be able to fill or update user information database with the information provided by users, and create dynamic Internet documents viewed and used by users. The Database will contain all information pertaining to customer accounts, video information, customer reservation information and customer rental history. The following feature shows the basic structure and functions of our online video rental system. In conclusion, with the implementation of on-line video rental software system, a user can register and login to the on-line reservation service.

A reservation can then be made. Users also can review their previous service records. When a user comes to pickup or drop off video, the system should process the request according the online reservation record, information should be then updated to database, staff can also manage user accounts and inventory. To make the reservation process less complicated, the system allowed two days in advance reservation. By this reservation system, a customer is able to better visualize the options available and can customize the order; it also solves the problem of phone delays. 1. 2 Supplementary Requirements

The major task for this project is to implement each use case and integrate them into a working system. Therefore, the biggest constraint to us is coordinating with each other among group members in developing phase. The implementation and developing of the system have following non-functional requirements: 1. Object oriented programming is required for this project development; therefore an object oriented language is required for this project. 2. Since this project is designed for general customers, a user-friendly interface is required for this system. 3. This project is also designed for online video rental.

To coordinate this characteristic, the user interface must be developed to suit online usage. So a markup language like HTML is required to develop the interface. 4. UML is required during the development of this project. The project will use Rational Rose as the designing tool to design system structure, coordinate use case implementation and integration. 5. A database is required for this project to store customer information, such as customer profile, customer rental status, etc. , and video inventory data of the store. 6. JDBC is required to establish the connection between web application and the database. 7.

Java Servlets server is required in order to run the system on the web. 8. Programming environment is required to develop the system. Such an environment could be Windows NT workstation or Unix system. 9. Internet connection is essential to both system and its users (customers and the store). 2. Customer Requirements 2. 1 Use-case diagrams Use case diagram for users: Use case for administrators: 2. 2 Actor descriptions There are two actors in this system. They are users, administrators. The following are the description of each general actor. Users—users include registered users and unregistered users.

Unregistered users are viewed as potential customers. They have only have the right to browse or search video titles on the video rental website. They can also fill out the membership application form to become a registered user. Registered users are who has been the member of the online video rental system. They are the actual customers of the video rental store. They have the rights like checking out videos, updating membership information that unregistered users do not have. Administrators—Administrators are employees in the video rental store whose job is related to managing business operation.

They could be store manager, inventory manager or staff. They have the rights to cancel customer membership, login into software management system to check or update inventory information. 2. 3 Use-case descriptions 2. 3. 1 Use case for users Use case: Browsing USE CASE NAME BROWSING ACTOR User DESCRIPTION This use case is used by a registered/unregistered User to browse through the contents of the site NORMAL FLOW 1. The user invokes the use case by just entering the site 2. User browses through the contents of the site 3. User exits the site 4. Use case instance terminates ALTERNATIVE FLOW

In step 3, if user selects videos to a temp-shopping cart, the user will be able to view the shopping cart. If the user decides to make a rental, The user has options to create a new account if the user is first time user, or to login if the user is a returned customer. PRE-CONDITION None POST-CONDITION The user has created an account, or made a rental, or just exited the website. ASSUMPTION User is on our website Activity diagram for Browsing use case: Use case: Create account: USE CASE NAME Create account ACTOR User DESCRIPTION This use case is used by the customer to become a registered user of the online video rental system NORMAL FLOW

1. The customer invokes the use case by clicking on the “create account” button. 2. The customer enters the required personal information for registration 3. The user name will be verified to be unique 4. The input information is entered in the customer table of the database 5. Customer registration is confirmed by email 6. Logon screen appears 7. Use case instance terminates ALTERNATIVE FLOW In step 2, if customer enters incomplete required information, the customer will be asked to complete the information. In step 3, if the user name already exists in the database, the customer will be asked to choose a unique user name PRE-CONDITION

None POST-CONDITION The use case instance ends when the customer information has been entered into the database, validated and a message is sent to the customer ASSUMPTION User is on our website Activity diagram for Create account use case: Use case: Login USE CASE NAME Login ACTOR User DESCRIPTION This use case is used by a registered user to reserve videos NORMAL FLOW 1. The customer invokes the use case by clicking the “login” button 2. The customer enters the login name and password 3. The system verifies and validates the login name and password 4. Use case instance terminates ALTERNATIVE FLOW

In step 3, if the login name or password is invalid, user has to re-enter a valid user name or password PRE-CONDITION The customer has created an account POST-CONDITION The customer is authorized to make an online reservation ASSUMPTION The customer is a registered user Activity diagram for Login use case: Use case: Search USE CASE NAME Search ACTOR User DESCRIPTION This use case is used by the user to search for a video NORMAL FLOW 1. The user enters the category of search or the video name 2. The information is retrieved from the database and all matches are posted 3. User exits the website 4. Use case instance terminates

ALTERNATIVE FLOW In step 3, if user selects videos to a temp-shopping cart, the user will be able to view the shopping cart. If the user decides to make a rental, The user has options to create a new account if the user is first time user, or to login if the user is a returned customer. PRE-CONDITION None POST-CONDITION The user has created an account, or made a rental, or just exited the website. ASSUMPTION User is on our website Activity diagram for Search use case: Use case: Check out USE CASE NAME Check out ACTOR User DESCRIPTION This use case is used by a registered user to make a check out for his/her video rental order NORMAL FLOW

The user invokes the use case by clicking check out button to make a check out request The user’s credit card information is confirmed. The order information will be sent to database. A page with all order information and a check out success message is displayed. At the same time, an email will be sent to customer’s email account ALTERNATIVE PATHS None PRE-CONDITION The user has to be logged in POST-CONDITION The use case instance ends when the video rental order has been successfully processed and customer received and email issued this order ASSUMPTION User has registered in the system Activity diagrams for check out use case:

Use case: Check status USE CASE NAME Vie rental status use case ACTOR User DESCRIPTION This use case is used by a user to view his/her video rental status NORMAL FLOW The user invokes the use case by clicking “View rental status” to get a view rental status request Software application sent the information as HTML format page to user’s browser and information displayed The use case instance terminates ALTERNATIVE PATHS None PRE-CONDITION The user has to be logged in POST-CONDITION The use case instance ends when the video rental information has been received by user ASSUMPTION The user has been registered in the system

Activity diagram for check status use case: Use case: Update profile USE CASE NAME Update profile ACTOR User DESCRIPTION This use case is used by a user to update his/her personal information NORMAL FLOW The user invokes the use case by clicking “Update profile” to get a update profile request The user’s personal information is displayed. The user update any information he/she required including user’s address, email, phone number, user ID and password by inputting information, and click on “submit” button to submit updated information Updated profile is stored in Customer table of database.

A page issued a success update with all updated information is displayed The use case instance terminates ALTERNATIVE PATHS None PRE-CONDITON The user has to be logged in POST-CONDITOIN The use case instance ends when the user’s information has been updated in database and a message received by user ASSUMPTION The user has been registered in the system Activity diagram for update profile use case: Use case: Logout USE CASE NAME Logout ACTOR User DESCRIPTION This use case is used by a registered user who has logged in, to logout of the system NORMAL FLOW The customer invokes the use case by clicking the “logout” button Use case terminates

ALTERNATIVE FLOW None PRE-CONDITION Customer is logged in POST-CONDITION Logged out ASSUMPTION None Activity diagram for Logout use case: 2. 3. 2 Use case for administrators Use case: administrators login USE CASE NAME AdminLogin ACTOR Administrator DESCRIPTION This use case is used by Administrator to manage the video information and user information NORMAL FLOW 1 The Administrator invokes the use case by clicking the “AdminLogin” button 2 The Administrator enters the login name and password 3 The system verifies and validates the login name and password 4 Use case instance terminates ALTERNATIVE FLOW

In step 3, if the login name or password is invalid, the administrator has to re-enter a valid login name or password PRE-CONDITION The Administrator has registered POST-CONDITION The Administrator is authorized to manage the database information ASSUMPTION Activity diagram for administrators login use case: USE CASE: Administrator Browsing USE CASE NAME AdminBrowsing ACTOR Administrator DESCRIPTION This use case is used by Administrator to track all the rental information NORMAL FLOW 1. The Administrator invokes the use case when he wants to get the video rental information. 2. Click the Browse rental information button. 3.

The whole rental information will show up. 4. The use case instance terminates. ALTERNATIVE PATHS PRE-CONDITION The Administrator has to login. POST-CONDITION ASSUMPTION Activity diagram for administrator browsing: USE CASE: Administrator Logout USE CASE NAME AdminLogout ACTOR Administrator DESCRIPTION This use case is used by the administrator who has logged in, to logout of the system NORMAL FLOW The admin invokes the use case by clicking the “Adminlogout” button Use case terminates PRE-CONDITION Admin is logged in POST-CONDITION Logged out ASSUMPTION None Activity diagram for administrator logout: USE CASE: Video Return

USE CASE NAME VideoReturn ACTOR Administrator DESCRIPTION This use case is used by an administrator to track the customers’ video rental status when customers come to return the videos to the store NORMAL FLOW 1. The Administrator invokes the use case by inputting the returned videos’ rental ID. 2. The information of customer’s rental status will be updated automatically by the system. 3. The use case instance terminates. ALTERNATIVE PATHS In step 2, If the customer returned the video later than expected, the system will add the extra fee to the customer’s account and this information will show up to the Administrator.

PRE-CONDITION The Administrator has to login. POST-CONDITION ASSUMPTION Activity diagram for video return use case: USE CASE: Video Pick up USE CASE NAME VideoPickup ACTOR Administrator DESCRIPTION This use case is used by an administrator to track the customers’ video rental status when customers come to pickup the reserved videos for him/her. NORMAL FLOW 1. The Administrator invokes the use case by inputting the customer’s user name. 2. The information of customer’s rental status will be shown up 3. Confirm the customer’s order. 4. The use case instance terminates. ALTERNATIVE PATHS

In step 3, If the customer’s order isn’t confirmed, he has to make a new reservation; otherwise he couldn’t pick up the videos. PRE-CONDITION The Administrator has to login. POST-CONDITION ASSUMPTION The videos was returned on time by the previous customer Activity diagram for video pickup use case: USE CASE: Cancel Order USE CASE NAME CancelOrder ACTOR Administrator DESCRIPTION This use case is used by the Administrator to Cancel the order for the customer NORMAL FLOW 1. This use case is initiated when a customer want to cancel his order 2. The Administrator input this customer’s use name 3.

This customer’s order status will be shown up to the Administrator. 4. Cancel the order which the customer want 5. The system will adjust Customer’s order status and his account. 6. The use case instance terminates. ALTERNATIVE PATHS PRE-CONDITION The Customer has to send the email to cancel his order at least two days earlier than the expected rental date. POST-CONDITION ASSUMPTION Activity diagram for cancel order use case: USE CASE: Cancel Account USE CASE NAME CancelAccount ACTOR Administrator DESCRIPTION This use case is used by the Administrator to Cancel the account for the customer NORMAL FLOW

1. This use case is initiated when a customer want to cancel his account 2. The Administrator input this customer’s use name 3. Push the cancel button. 4. The system will check the account information of this customer. 5. The system will delete the customer’s account from the database. 6. The use case instance terminates. ALTERNATIVE PATHS In step5, if the customer still has holds in his account, then his account couldn’t be canceled; the hold in his account will show up. PRE-CONDITION The Customer has to send the email to the Admin for requiring canceling his account. POST-CONDITION

ASSUMPTION Activity diagram for cancel account: USE CASE: Add Video USE CASE NAME AddVideo ACTOR Administrator DESCRIPTION This use case is used by Admin to add new video information in the inventory. NORMAL FLOW 1. This use case is initiated when the Administrator want to add new video information . 2. Push the add button on the Video information screen. 3. The Administrator will then add the new videos’ information such as rental ID, Category, etc. 4. The system will then add the video information in the Database. 5. The use case instance terminates. ALTERNATIVE PATHS None PRE-CONDITION

The Administrator has to login. POST-CONDITION None ASSUMPTION None Activity diagram for add videos: USE CASE: Edit Video USE CASE NAME EditVideo ACTOR Administrator DESCRIPTION This use case is used by Administrator when he want to change some information of the old videos. NORMAL FLOW 1. This use case is initiated when the Administrator want to edit the video information. 2. Push the edit button beside the video rental ID which the Admin want to change. 3. The Administrator will then change the video information. 4. The system will then update the video information in the database. 5.

The use case instance terminates. ALTERNATIVE PATHS None PRE-CONDITION The Administrator has to login. POST-CONDITION None ASSUMPTION None USE CASE: Delete Video USE CASE NAME DeleteVideo ACTOR Administrator DESCRIPTION This use case is used by administrator to delete the video, which is no long available for rent. NORMAL FLOW 1. This use case is initiated when the Administrator want to delete videos. 2. Push the delete button beside the rental ID of the video, which will be deleted. 3. The system will then delete the video information in the database. 4. The use case instance terminates.

ALTERNATIVE PATHS None PRE-CONDITION The Administrator has to login. POST-CONDITION None ASSUMPTION The video to be deleted is not reserved by the customer 3. Requirements Analysis 3. 1 Structural Analysis 3. 1. 1 Class diagrams for users use cases Browsing: Browsing UI: This is a boundary class used by the use case “Browsing” to create the UI. Browsing handler: This is a control class used by the use case “Browsing” for handling the browsing process. Customer Profile: This is an entity class used by use case “Browsing” for checking the profile of user.

Video record: This is an entity class used by use case “Administrators Browsing” for checking and updating the video inventory records. Create account: CreateAccount UI: This is a boundary class used by the use case “Create account” to create the UI. Create Account Handler: This is a control class used by the use case “Create account” to create customer profile in customer profile database. Customer profile: This is an entity class used by use case “Create account” for checking and updating the customers’ profiles records Login: Login UI: This is a boundary class used by the use case “Login” to create the UI.

Login Handler: This is a control class used by the use case “Login” to verify customer login information according to customer profile database. Customer profile: This is an entity class used by use case “Login” for checking and updating the customers’ profiles records Search: Search UI: This is a boundary class used by the use case “Search” to create the UI. Search Handler: This is a control class used by the use case “Search” to search video records according to search keywords. Video record: This is an entity class used by use case “Search” for getting, checking the video record.

Check out: Check out UI: This is a boundary class used by the use case “check out” to create the UI. Check out Handler: This is a control class used by the use case “check out” for handling the check out process. Customer Profile: This is an entity class used by use case “check out” for checking the profile of user. VideoRental: This is an entity class used by use case “check out” for adding the order information of a user to the database. VideorentalDetail: This is an entity class used by use case “check out” for adding the order detail information of a user to the database. Check status:

View rental status UI: This is a boundary class used by the use case “view rental status” to create the UI. View rental status Handler: This is a control class used by the use case “view rental status” to handle the view status process. VideoRental: This is an entity class used by the use case “view rental status” to get user’s order information. VideoRentalDetail: This is an entity class used by the use case “view rental status” to get user’s order detail information. Update profile: UpdateProfile UI: This is a boundary class used by the use case “Update profile” to create the UI.

UpdateProfile Handler: This is a control class used by the use case “update profile” for handling the update profile process. VerifyHandler: This is a control class used by the use case “update profile” for handling the updated information verification. CustomerProfile: This is an entity class used by use case “update profile” for getting, checking the customer personal information and adding the updated information of a user to the database. Logout: Logout UI: This is a boundary class used by the use case “Logout” to create the UI. AdminLogout Handler: This is a control class used by the use case “Logout”.

Session data: this is an entity class to hold the temp data in one session. 3. 1. 2 Class diagrams for administrator use cases Administrators login: AdminLogin UI: This is a boundary class used by the use case “Administrators login” to create the UI. AdminLogin Handler: This is a control class used by the use case “Administrators login” for checking administrators record. Admin record: This is an entity class used by use case “Administrators login” for getting, checking the administrators’ record. Administrator Browsing: Admin Browsing UI: This is a boundary class used by the use case “Administrator Browsing” to create the UI.

Admin browsing Handler: This is a control class used by the use case “Administrators Browsing” for administrators checking and updating video record, video rental, video rental detail, and customer profile. Video record: This is an entity class used by use case “Administrators Browsing” for checking and updating the video inventory records. Video rental detail: This is an entity class used by use case “Administrators Browsing” for checking and updating the customers’ video rental detail records. Video rental: This is an entity class used by use case “Administrators Browsing” for checking and updating the customers’ video rental records.

Customer profile: This is an entity class used by use case “Administrators Browsing” for checking and updating the customers’ profiles records. Administrator Logout: AdminLogout UI: This is a boundary class used by the use case “Administrators Logout” to create the UI. AdminLogout Handler: This is a control class used by the use case “Administrators Logout”. Video return: Video return UI: This is a boundary class used by the use case “Video return” to create the UI. Account manager: This is a control class used by the use case “Video return” for administrators checking and updating, video rental, and video rental detail.

Video manager: This is a control class used by the use case “Video return” for administrators checking and updating video records. Video record: This is an entity class used by use case “Video return” for checking and updating the video inventory records. Video rental detail: This is an entity class used by use case “Video return” for checking and updating the customers’ video rental detail records. Video rental: This is an entity class used by use case “Video return” for checking and updating the customers’ video rental records. Video pickup: Video pickup UI: This is a boundary class used by the use case “Video pickup” to create the UI.

Account manager: This is a control class used by the use case “Video pickup” for administrators checking and updating, video rental, and video rental detail. Video manager: This is a control class used by the use case “Video pickup” for administrators checking and updating video records. Video record: This is an entity class used by use case “Video pickup” for checking and updating the video inventory records. Video rental detail: This is an entity class used by use case “Video pickup” for checking and updating the customers’ video rental detail records.

Video rental: This is an entity class used by use case “Video pickup” for checking and updating the customers’ video rental records. Cancel order: Cancel order UI: This is a boundary class used by the use case “Cancel order” to create the UI. Account manager: This is a control class used by the use case “Cancel order” for administrators checking and updating, video rental, and video rental detail. Video rental detail: This is an entity class used by use case “Cancel order” for checking and updating the customers’ video rental detail records.

Video rental: This is an entity class used by use case “Cancel order” for checking and updating the customers’ video rental records. Cancel account: Cancel account UI: This is a boundary class used by the use case “Cancel account” to create the UI. Account manager: This is a control class used by the use case “Cancel account” for administrators checking and updating, video rental, and video rental detail. Customer profile: This is an entity class used by use case “Cancel account” for checking and cancel customers’ account. Add video:

Add video UI: This is a boundary class used by the use case “add video” to create the UI. Video manager: This is a control class used by the use case “add video” for administrators checking and updating video records. Video record: This is an entity class used by use case “add video” for checking and updating the video inventory records. Edit video: Edit video UI: This is a boundary class used by the use case “edit video” to create the UI. Video manager: This is a control class used by the use case “edit video” for administrators checking and updating video records.

Video record: This is an entity class used by use case “edit video” for checking and updating the video inventory records. Delete video: Delete video UI: This is a boundary class used by the use case “delete video” to create the UI. Video manager: This is a control class used by the use case “delete video” for administrators checking and updating video records. Video record: This is an entity class used by use case “delete video” for checking and updating the video inventory records. 3. 2 Behavioral Analysis 3. 2. 1 Collaboration diagrams for users use cases

Browsing: Browsing: the customer use browsing UI to browse through web site video lists. Browsing request is submitted to browsing handler. Browsing handler searches video record database according to browsing request, then create corresponding results returned to the customer. Create account: Create account: the customer use CreateAccount UI to input necessary information. The information is submitted to Create Account Handler. Create Account handler create account for the customer in customer profile database. Login: Login: the customer input Login data from Login UI.

Login data is submitted to Login Handler. Login Handler will verify the login data in customer profile database. Search: Search: the customer search videos by inputting search keywords in Search UI. The search keywords are submitted to Search Handler. Search Handler will search video record database according to search keywords. Check out: Check out: The user click checkout button to make a checkout request. The CheckoutUI ask CheckoutHandler to get user’s credit information. The credit information is displayed and confirmed by user.

After CheckoutHandler verify the user’s credit information confirmation, CheckoutHandler will send successful checkout message and email to user. user’s video rental information will be sent to database. Check status: View rental status: The user click view rental status button to get a view rental status request. ViewRentalStatusUI ask ViewRentalStatusHandler to get video rental information from database. The user video rental status will be displayed. Update profile: Update profile: The user click update profile button to get an update profile request.

UpdateProfileUI ask UpdateHandler to get customer profile from database. Customer profile is displayed, user input updated information. After updated customer profile is verified by VerifyHandler, updated information will be sent to database Logout: Logout: the customer click Logout button in Logout UI. Logout request is submitted to Logout handler. Logout handler kills the session and customer logged out. 3. 2. 2 Collaboration diagrams for administrator use cases Administrators login: Administrator login: The administrator input login information fro adminLogin UI.

The login information is submitted to AdminLogin Handler. The AdminLogin handler will verify the login information according Admin Record database. Administrator Browsing: Administrator Browsing: the Administrator submits the browsing query through Admin Browsing UI to admin browsing handler. According to the query, the admin browsing handler will search customer profile, video Record, video rental, or video rental detail database for corresponding query. Administrator Logout: Administrator Logout: the administrator click logout button from AminLogout UI. Logout request is forwarded to AdminLogoutHan