Netflix is a global provider for streaming movies and TV series; it has over 75 million subscribers as of 2016. Netflix started as an American DVD-by-mail service in 1998, and began streaming in 2007. Netflix expanded with streaming services to Canada in 2010 and now serves over 190 countries with streaming services. Netflix now produces hundreds of hours of original programming around the world.
Customers can have many subscriptions and a subscription is assigned to one customer. A subscription has a subscription number and date. There are only two types of subscriptions that Netflix offers, first there is an All-In subscription which has access to all the contents offered by the company, and there is a TV-Only subscriptions which has access only to TV series. TV-Only subscription store information about movie-offer-type which is a type of an offer that reduces the cost of switching to All-In subscription depending on the hours watched by the customer (the more hours a customer watch, the more discount he will receive), it is not required to store this information for the All-In subscriptions. Also, only authorized customers can stream contents from the company.
The system needs to store the following information about each content: a title, year and description. There are only two types of contents, movies and TV-Series. A movie has an additional information which is genre and TV-Series has a seasons count. Contents are stored in several servers and a server can contain several contents to improve streaming performance. Maintenance of the servers is done every month as well as when there is a need of a maintenance. The servers should be up and running 24/7.
The contents are acquired from different content providers. All content providers have unique identifiers and names. There are only two types of content providers. First, a studio can provide contents and the system needs to store information about the credentials that the studio has. Second, an independent content makers can provide contents and the system needs to store the independent content maker’s name and location.
The process of publishing a content (making it available for streaming) goes as follows: first, a content specialist (from Netflix) will receive a list of potential contents and he will add them to the system, then the content provider will receive a notification asking for his approval, the content will become available for streaming after the approval of the provider. A content specialist can add many contents and a provider can approve many contents but a content can only be added by exactly one specialist and approved by at most one provider.
Call-center employees can record many customers’ complaints, he will be able to create a complaint case, update it, and close it. Also, Call-center employees can call customers to promote movie offers, they can promote to many customers but they should at least promote to 6 customers, and a customer could receive promotion from several call-center employees but he shouldn’t receive more than 4, and the system should keep track of the customers’ feedback from the promotion call. For a call-center to receive a bonus, he/she should record the feedback of at least 20 customers. Phase 2:
3) Domain Modeling
A. Use the “Noun Technique” to identify the Domain Classes in this narration. (create a list containing all the nouns and whether you should include those as classes or not).
B. Draw a Domain Model Class Diagram showing classes with attributes and multiplicity as well as any type of relationship (association, whole-part, and generalization/specialization) as appropriate.
4) Activity Diagrams, System Sequence Diagrams and State Diagrams
A. Draw a detailed Activity diagram for any USE-case you choose from part 1 above.
B. Draw a detailed Sequence Diagram for any USE-case you choose from part 1 above.
C. Draw a State Diagram that shows the states a Content object from the initiation to the end.