Hello. I have the following assignment "Assignment4.docx" that is based off of the requirements "UML.docx" that created the "class_diagram.docx". Assignment4 is a continuation where I need to create the simple version of the UML diagram in Java and then update the UML diagram. The zip folder contains the starter source code. The Assignment4 file is long and daunting, but a lot of it is just nitpicky details. Please let me know if this can be completed and what the cost would be. Thank you!
Assignment #4 Submission Deliverables · You must submit the following items: (1) A ZIP file named 2020-08-A4.zip that includes your source code, executable JAR file, and your docker file. The structure of the JAR file is shown in more detail below. (2) An updated copy of the UML Design Class Diagram from the earlier assignment reflecting any problem requirement updates as described below, named class_diagram.pdf. (3) A UML Sequence Diagram that captures the sequence of actions described below, named sequence_diagram.pdf. General Intent In the first phase of the assignment, you were required to provide design artifacts to describe your approach to structuring the classes, attributes, operations, methods and relationships needed to simulate the problem. Now, you are required to provide a lightweight implementation of the system in Java that reflects your design. You are required to demonstrate fundamental separation of classes in your source code indicative of a reasonable design. This means that your source code should show some indication of being divided up into classes, files, etc. that match your design. You will lose points if you submit poorly structured code. We provide some examples of the expected input and output for a few test cases. You must provide the actual Java source code, along with all references to any external packages that you used to develop your system. You must also provide an executable JAR file to support the testing and evaluation of your system. We must also be able to recompile your application from your source code as part of the evaluation process. Problem Scenario Your requirements are continued here. Any requirements from the earlier assignments are carried over here unless explicitly modified and/or otherwise cancelled. In general, the newer requirements will take precedence. This assignment involves implementing some of the core architecture and functional capabilities that you designed in the earlier assignments. Your system must implement the following functionality: (1) The system must initialize the current month and year as 10 (October) and 2020, respectively. (2) The system must allow the user to create demographic groups, streaming services, movies, Pay- Per-View events, and studios. (3) The system must allow streaming services to offer movies and Pay-Per-View events. (4) The system must allow portions of a demographic group to view a streaming service offering. (5) The system must allow the user to advance the time period to the next month. (6) The system must calculate and display the monies spent by the demographic groups, and the monies collected by the streaming services and studios for: (a) the current time period; (b) the previous month; and, (c) the total since the start of the program run. Your system does not have to produce a graphical display. At this point, we will evaluate your system based on the text-based output and the structure of the source code. Evaluation/Grading Your Submissions Your submission will be evaluated based on four main areas: (1) 20 points for your submission correctness: working JAR file, the capability to recompile your code if necessary, etc. Common issues that cause you to lose points in this category: · Not submitting a working JAR file · The JAR file doesn’t function properly on the VM during testing – for example, JNI errors, etc. · Gross formatting errors – we’ve designed the testing harness to be as robust as possible when processing the submissions, but errors caused by including graphical displays of the space region, diagnostic output, and other random messages will also cause you to lose points. · Formatting is important! Syntax is important! Use the matching characters for the output strings, and don’t put extra spaces between elements of the output strings. Strings that do not match the correct output because of formatting (syntax) errors might receive significant penalties. (2) 40 points for correct operation of the system on the selected scenario (test) files (3) 50 points for reasonably structured source code The main issue that will cause you to lose points in this category is submitting poorly structured, possibly monolithic source code that doesn’t display any indication of separation of responsibilities among classes, objects, etc. There isn’t a specific set of objects that you must have, but you do need to display some significant effort to apply object-oriented analysis & design principles. (4) 40 points for your updated Class & Sequence diagrams The main issue that will cause you to lose points in this category is submitting Class & Sequence Diagrams that are inconsistent, and/or that don't reflect the latest changes to the problem requirements. For your Sequence Diagram, you only need to show the interactions required to successfully complete the following commands in your system: • create_event • offer_event • watch_event • display_events You should create enough notional objects to demonstrate the messages and related data being sent between these objects. Input/Output & Command Formatting Requirements We will test your program at this point using a relatively simple, text-based Command Line Interface (CLI) approach. The commands that we will use are listed below, and your system is expected to follow the syntax of the commands as listed. Your program should accept input from a basic command (terminal) interface – please don't use any windows, third-party processors, etc. [1] create_demo,
,, This command must create a demographic group with the corresponding short name, long name, and number of accounts. The short name must be unique for all demographic groups. For example: > create_demo,age_40_50,Viewers between 40 and 50,800 This command must create a demographic group that can be referenced in later commands using the short name age_40_50, with the long name as shown above, and with 800 accounts. [2] create_studio,, This command must create a studio with the corresponding short and long names. The short name must be unique for all studios. For example: > create_studio,disney,Walt Disney Animation Studios This command must create a studio that can be referenced in later commands using the short name disney, and with the long name as shown above. [3] create_event,,,,,, This command must create an event type – movie or Pay-Per-View (ppv) – with the given name, year of production, duration, and licensing fee. The combination of the name and year produced must be unique for all movies. Also, the movie must have been produced by a valid studio. If the studio being referenced is invalid (e.g., hasn't been created yet), then this command should be considered invalid, and the movie should not be created. Also, we will not be concerned with genres at this point. For example: > create_event,movie,Mulan,1998,88,disney,1000 This command must create a movie named Mulan that is 88 minutes long and was produced in the year 1998 by the disney studio. Also, any streaming service that wants to offer this movie must pay the studio $1,000 USD per month as the licensing fee. Similarly, > create_event,ppv,30 for 30: Monaco,2020,106,espn,3300 This command must create a PPV event named 30 for 30: Monaco that is 106 minutes long and was produced in the year 2020 by espn studio. Also, any streaming service that wants to offer this PPV event must pay the studio $3,300 USD as the licensing fee. Of course, this is an example – if there is no valid studio for the short name espn, then this PPV event should not be created. [4] create_stream,,, This command must create a streaming service with the given short name, long name and monthly subscription price. The short name must be unique for all streaming services. For example: > create_stream,apv,Amazon Prime Video,12 This command must create a streaming service that can be referenced in later commands using the short name apv, with a long name as shown above and a subscription price of $12 USD per month. [5] offer_movie,,, This command must create a listing for the designated streaming service that allows prospective viewers (i.e., portions of demographic groups) to access and watch the movie. If either the streaming service or movie name reference is invalid, then this command should be considered invalid, and the listing should not be created. For example: > offer_movie,apv,Mulan,1998 This command must create a listing that allows viewers to subscribe to the apv streaming service to access and watch the 1998 version of the movie Mulan. Also, from an accounting or billing perspective, this means that the disney studio, which produced the movie, has earned $1,000 USD in licensing fees for that month for this offering. [6] offer_ppv,,, , This command must create a listing for the designated streaming service that allows prospective viewers (i.e., portions of demographic groups) to access and watch the Pay-Per-View event for the designated price. If either the streaming service or pay-per-view name reference is invalid, then this command should be considered invalid, and the listing should not be created. For example: > offer_ppv,net,30 for 30: Monaco,2020,57 This command must create a listing that allows viewers to access and watch the Pay-Per-View event 30 for 30: Monaco via the Netflix (net) streaming service for the cost of $57 USD. Also, from an accounting or billing perspective, this means that the espn studio, which produced the Pay-Per-View event, has earned $3,300 USD in licensing fees for that month for this offering. [7] watch_event,,, ,, This command must create a transaction such that some percentage of the accounts in the designated demographic group have decided to access and watch the movie or Pay-Per-View event being offered on the streaming service. As with most commands, if the references to the demographic, streaming service or event are invalid, then this command should also be considered invalid. Similarly, if the streaming service is not offering the designated event, then the command should be considered invalid. For example: > watch_event,age_40_50,30,apv,Mulan,1998 This command must create a transaction such that 30% of the accounts in the age_40_50 demographic have accessed and watched the Mulan movie via the apv streaming service. From an accounting or billing perspective, this means that 0.30 * 800 = 240 accounts have had to subscribe to the apv service such that the apv service has earned 240 * $12 USD = $2,880 USD in subscription fees, assuming that this is the first movie for those subscribers during the current month. We are going to make an assumption to make the calculations at