Consider the following scenario and then answer the corresponding questions.
A Video Store (AVS) runs a series of fairly standard video stores. Before a video can be put on the shelf, it must be cataloged and entered into the video database. Every customer must have a valid AVS customer card in order to rent a video. Customers rent videos for three days at a time. Every time a customer rents a video, the system must ensure that they do not have any overdue videos. If so, the overdue videos must be returned and an overdue fee paid before customer can rent more videos. Likewise, if the customer has returned overdue videos, but has not paid the overdue fee, the fee must be paid before new videos can be rented. Every morning, the store manager prints a report that lists overdue videos. If a video is two or more days overdue, the manager calls the customer to remind them to return the video. If a video is returned in damaged condition, the manager removes it from the video database and may sometimes charge the customer.
Upon your review complete the following:
1. Identify at least 3 classes that could be part of the AVS system. For each class identify at least 5 attributes and 2 methods. (9 pts)
2. Provide a one-sentence description of each of the methods you have identified in the previous step. (6 pts)
3. For each of the methods identified in question 1, list any arguments (data) required to perform the method. (3 pts)
4. Whenever a video is added, the system will increase the total number of available for checkout for that movie. How will you model the operation of increasing the total number of available videos? Will this be a public or private operation? Explain your reasoning briefly. (6 pts)
Explain the concept of polymorphism using an example in the AVS context.