Class diagram Version 1:

  Class diagram Version 2:

 - In Class Diagram version 1 above, the updateCatalog() method for Administrator was mentioned as

    a combined method against the explicit methods mentioned for Administrator class in class diagram version 2.

 - The search() method is added to Customer class to match the UseCase diagram.

 - Also, association between the Customer class and the ShoppingCart class should be Shared and not aggregation.

  Class diagram Version 3:



  Class diagram Version 4:

Class Descriptions

1) User

This class handles all user actions. The User class is the super class of Customer and Administrator. It includes the private methods to verify the login of the user. The verifyLogin() method is called when the user clicks the "Sign In" button on the Login.aspx Web form. It returns true if the login is successful, false if it is not.

2) SessionManager

The SessionManager class supports the User’s required operations like getUser() and getdepartment(). The getUser method is called when the user information needs to be displayed. The getdepartment() method is used to get the exisiting departments in the catalog. When the user needs to get a product, the system has to start from the Session Manager and navigate down to the Product class.

3) Administrator

This class handles the Administrator actions. It inherits all the User class responsibilities and its functions. It has a functions createDepartment(), createCatogory(), createProduct() are called when the administrator has to create/add a new department or category or product respectively to the catalog. Similarly, operations like deleteDepartment(), deleteCategory() and deleteProduct() are called when deleting a department/category/product respectively from catalog. For these delete operations to be valid there should be atleast one department, category and product already existing in the Catalog. Also, the editCatalogDetails() method enables administrator to edit and update the product details.

Conditions for createProduct Operation

4) Customer

This class handles the customer actions. It inherits all the User class responsibilities and its functions. The updateProfile() method is called when customer wants to edit, update and save his/her personal information on the website for future use. But to update profile, customer must register and login through the Register.aspx and Login.aspx Webpage which uses the register() and login() methods. Also, the search() function is called when customer searches for some product and enters some Key-Words in the text-box on Search.aspx page.

Conditions for Login Operation

5) Department

This class has all different departments line Jazz, Pop etc. This class has a private method called getCategoryInDepartment which is used get all the categories in a particular department. A department may contain zero or more categories and the corresponding products.

6) Category

This class has all different categories for the corresponding departments. This class has a private method called getProductsInCategory which is used get all the products bellonging to a particular category and department. A category can belong to one or more departments. Also, a category can contain zero or more products.

7) Product

This class represents collection of products of a particular category and/or department. The displayProduct() and getProductDetails() method are called when the user clicks on a product or on the "Search" button on the Search.aspx Web form. The displayProduct() method is used to retrive image of the product and getProductDetails() method retrives its details as a data set whenever a customer clicks on the product. A product can belong to one or more departments and/or categories.

8) ShoppingCart

ShoppingCart class has all the products that are added by a customer to buy. The addCartItem() and deleteCartItem() methods are called when customer performs actions like "Add to Cart" and "Delete" of products on the ShoppingCart.aspx Webpage. The updatequantity() method is called when Customer clicks "Update" button on ShoppingCart.aspx Webpage to increase or decrease the number of products in the cart. Also, viewCartDetails() method is called when customer clicks on the "View Details" button to see a summary of the cart. It will display the summary only when cart is not empty, else it will display "Your Cart is empty."

Conditions for addCartItem Operation

Conditions for Checkout Operation

9) Orders

This class will store all information regarding the orders made by each customer. The placeOrder() method is called when customer clicks on the "Place Order" button on the Order.aspx Web form. It returns true if the order is placed successfully, false if it is not. The "Place Order" button will be enabled only when customer has a valid shopping cart and has entered valid personal, billing and shipping details.

Conditions for placeOrder Operation

10) ShippingInfo

This class handles the shipping information regarding every customer and their orders. The updateShippingInfo() method is called when customer edits his/her shipping Information and clicks the "Update" button on Profile.aspx Webpage.

11) OrderDetail

This Class handles details regarding every order that the customer makes. The calcPrice() method is called to calculate the total amount of the order placed. The method also calculates the total amount of the order including the shipping charges once the customer has selected the shipping region.

12) CartItem

A CartItem object indicates the quantity, unitcost, subtotal amount of the product selected by a customer. When a customer performs a product selection and clicks "Add to Cart" button, a new cartItem object is created and added to the cart. The calcPrice() method is called to calculate the total amount of the items added to cart.