Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Architecture and Design Assignment: Streaming Wars Project, Assignments of Software Engineering

Software ArchitectureObject-Oriented DesignDatabase Systems

An assignment for a university course, CS6310 – Software Architecture & Design, focused on developing a system to track streaming services offerings and usage by different demographic groups. Students are required to submit a UML Class Diagram and answers to design questions. The system allows users to create and update demographic groups and interact with streaming services, tracking costs, revenues, and licensing fees.

What you will learn

  • How does the model track the costs spent by different demographic groups?
  • How does the model track which events have been offered by which streaming services?
  • How does the model track which events have been produced by different studios?

Typology: Assignments

2020/2021

Uploaded on 02/03/2022

karthick-mp
karthick-mp 🇺🇸

5 documents

1 / 6

Toggle sidebar

Related documents


Partial preview of the text

Download Software Architecture and Design Assignment: Streaming Wars Project and more Assignments Software Engineering in PDF only on Docsity! CS6310 – Software Architecture & Design Assignment #1 [100 points]: Streaming Wars Project – Analysis & Design (v1) Spring Term 2021 – Instructor: Mark Moss Submission • This assignment must be completed as an individual, not as part of a group. • You must submit: (1) A UML Class Model Diagram named class_diagram.pdf; (2) Answers to the provided Design Questions as question_answers.pdf. • You may divide your UML Class Model Diagram into multiple diagrams/files if needed. For example, if the initial diagram is so large that dividing it into multiples makes it significantly easier to read, then you may submit multiple files with reasonable name extensions such as class_model_1.pdf, class_model_2.pdf, etc. You must provide enough context for the multiple diagrams to allow us to connect them together to understand the singular/completed diagram. • Formats other than PDF must be pre-approved an Instructor or TA. • You must notify the Instructors and TAs via a private post on Piazza BEFORE the Due Date if you are encountering difficulty submitting your project. Send the message to “Instructors” when posting your message in Piazza, as opposed to addressing a message to just one individual, to ensure that it is acknowledged as quickly as possible. • You will not be penalized for situations where Canvas is encountering significant technical problems. However, you must alert us before the Due Date – not well after the fact. You are responsible for submitting your answers on time in all other cases. • Please consider that uploading files to Canvas might occasionally take a long time, even in the case of seemingly “relatively small” submissions. Please plan accordingly, as submissions outside of the Canvas Availability Date will most likely not be accepted. You are permitted to make unlimited submissions, and we recommend that you save, upload and submit often. Problem Scenario With the current pandemic conditions, many of us spend a significant amount of time indoors. Many people miss the “Friday Night at the Movies” and “Summer Blockbuster” movie-going experiences. Meanwhile, streaming services like Netflix, Hulu, Disney Plus and Amazon Prime Video are offering (and expanding) their services. This project involves you developing a system that will allow users to track the different offerings from various streaming services, as well as how these offerings are being accessed by different demographic groups of consumers, and display usage measurements for the various services, in terms of number of movies rented, dollars spent, etc. Your task in this assignment is to review the problem description below, and then provide design artifacts – namely, a UML class model – that includes enough detail to support the requirements below. You will also provide answers to questions to elaborate on how your design addresses the problem requirements. The answers to your questions should be consistent with your design. Project Timeline This is the first phase of the course project. Your goal for this phase of the project is to review the provided problem description, and to identify the entities, attributes, operations, methods and relationships that are key to the successful design and development of the system. You’ll review the system requirements and specifications and provide design artifacts (e.g., UML structural and/or dynamic diagrams) and other responses that represent your proposed design and how it addresses the problem’s challenges. This is similar to the Object-Oriented Analysis discussed in Udacity videos P2L1 – P2L3 and demonstrated in P2L5. In the second phase of the course project, you’ll be asked to provide peer reviews for some of your fellow classmates. You’ll be granted access to their submissions and design artifacts from the first phase of the project, and then you’ll provide feedback on their designs. Reviewing other designs – especially those of your peers – can help you make you more aware of alternative design approaches. The actual grade for each student’s “first phase” submission will be determined solely by a TA’s evaluation of their design – not your feedback – so please be candid and professional when providing your review. Your grade for this second phase of the project will be based on the quality and thoroughness of the feedback that you provide to your peers. In the third phase of the course project, you’ll be asked to implement these requirements. It’s often the case that implementing a system can help you identify aspects of the problem description that are unclear, ambiguous or possibly even contradictory. It can assist you in identifying aspects of your architecture and design that are faulty and/or incomplete. You will develop, build and test a “lightweight version” of the core system to help you further think through (and possibly improve) the quality of your design. We will evaluate the correctness of your system from a source code quality and design standpoint, and by how well your system actually passes a set of test cases. The first three phases of the course project are all performed individually. In the final phases of the course project, you’ll work in teams to achieve two major goals: (A) Select three distinct improvements to the system, each of which will require some significant change to the current architecture and/or design; and, (B) Implement your changes, and then provide design artifacts that document your design changes. You’ll work together as a group of three, four or five designers to determine a single unified design using some of the techniques mentioned in Udacity videos P2L4, P3L5, and others. Then, you’ll work together to weigh the various architectural tradeoffs and build a single, core system that represents (and improves upon) your concepts from the earlier phases. You will also provide a video demonstration of how your system addresses the requirements, along with a description of how your final “as-is” system and design artifacts compare to the “to-be” artifacts you developed earlier. Finally, you might also have to account for some relatively minor changes in the requirements from the earlier phases. Changes occur often in many projects, and this is an opportunity to consider strength of your original designs based on the amount of effort needed to update your most recent designs to accommodate the changed requirements. • When a service offers one or more movies, then that service must also set and advertise a monthly flat-rate subscription price for the service as a whole. Viewers can then watch as many movies as desired per month for the price of a subscription. • When a service offers one or more Pay-Per-View events, then that service must also set and advertise a single-view price for each specific event. Viewers can then watch that specific Pay-Per- View event as long as they pay that specific event price. They do not need to pay the subscription price for the streaming service itself – some portion of the subscription fee will already be included in the PPV-event price. • Services must publish a directory of the events that they will offer each month to viewers. Studios and Publishing Groups The movies and Pay-Per-View events that are watched by viewers must be developed and produced by a studio or publishing group. The studios and publishing groups make money by producing these events and licensing them to various streaming services. • Each studio will be identified by a “short name” like “sony_col” or "sony_tri", along with a more descriptive “long name” such as “Sony_Pictures_Columbia” or “Sony_Pictures_TriStar”. • For our current licensing model, we will keep it simple by having a studio offer one specific price for each movie or Pay-Per-View event. Any streaming service that chooses to offer a specific event to viewers will license it for that price from the studio. • A movie or PPV event can only be offered by one studio. There are no "shared events" from a production standpoint in our model. Transactions – Watching Movies and PPV Events When one or more viewers of a demographic group decide to access and view a movie or PPV event, then this also triggers financial changes. • When some portion of a demographic group decides to watch a movie or PPV event, then that portion of the group has to pay some cost to the streaming service. • If this is for a movie, then that portion of the demographic group must pay the subscription fee for that service. • If a portion of the demographic group has already watched one movie from a specific streaming service, then that portion of the group does not have to pay the subscription fee again (for that month) for watching two or more movies. • If this is for a Pay-Per-View event, then that portion of the demographic group must pay the event cost. • We will not be concerned with any costs for re-watching an event. Re-watching a specific movie or PPV event will always be free. • Your system must be able to track the costs paid by each demographic group – for the current month, for the previous month, and in total from the beginning of the program run. • Similarly, your system must be able to track the money collected by each streaming service for the current month, for the previous month, and in total from the beginning of the program run. • Every time a show is offered by streaming service, that service must pay a licensing fee to the studio that produced that event whether the movie or PPV event gets watched or not. • Finally, your system must be able to track the money collected by each studio for the current month, for the previous month, and in total from the beginning of the program run. Evaluating/Grading Your Submissions • You must generate your diagrams using an automated tool (e.g. Argo UML, draw.io, Lucid Charts, Microsoft Visio, etc.) so that they are as clear & legible as possible. Even PowerPoint is allowed, though this is an excellent opportunity to use a tool that is more appropriately designed for UML as opposed to a general drawing tool like PowerPoint. The choice of tool(s) is yours; however, you should do a “sanity check” to make sure that your final diagrams are readable when exported to PDF; or, if necessary, some reasonable graphical format (PNG, JPG or GIF). • By "automated tool", we don't mean a system or application that will generate the elements of the UML Design Class Diagram for you. For example, we don't mean a tool or system that will reverse engineer a codebase and propose the classes, objects and relationships for you. These are the skills that you should be developing as part of this assignment. • We prefer that you submit your diagrams in dark, rich colors (particularly black). Diagrams submitted in certain colors, especially pastel or lighter shades, can be difficult to read. • You must designate which version of UML you will be using – either 1.4 (the latest ISO-accepted version) or 2.0 (the latest OMG-accepted version). We highly recommend that you label all diagrams with a header that includes your name and the UML version being used. There are significant differences between the UML versions, so your diagram must be consistent with the standard you’ve designated. Either version is acceptable at this point in the course. Closing Comments & Suggestions This is the information that has been provided by the customer so far. We (the OMSCS 6310 Team) will likely conduct an Office Hours where you will be permitted to ask us questions in order to clarify the client’s intent, etc. We will answer some of the questions, but we will not necessarily answer all of them. One of your main tasks will be to ensure that your architectural documents and related artifacts remain consistent with the problem requirements – and with your system implementations – over time. Quick Reminder on Collaboration Please use Piazza for your questions and/or comments and post publicly whenever it is appropriate. If your questions or comments contain information that specifically provides an answer for some part of the assignment, then please make your post private first, and we (the OMSCS 6310 Team) will review it and decide if it is suitable to be shared with the larger class. Best of luck on to you this assignment, and please contact us if you have questions or concerns.
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved