Java代写 | CS6310 – Software Architecture & Design Assignment #3

本次Java代写的主要内容是Java软件架构设计包含docker、UML类图、Programming等内容

CS6310 – Software Architecture & Design
Assignment #3

General Intent
In the first phase of the Streaming Wars Project, 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.
And don’t panic if you realize that your original design had flaws while working on this assignment – this is
common for “agile styles” of development. Make sure that your implementation works per these
requirements and specifications and note your earlier design oversights with some brief comments in your
code. You’re also being asked to provide improved design artifacts based on your “revised and improved
understanding” of the problem space, and especially in light of the problem requirement changes included in
this document.
We provide some examples of the expected input and output for a few test cases. You must provide the
actual Java source code. We must also be able to recompile your application from your source code as part of
the evaluation process.
Problem Scenario
Your requirements for the Streaming Wars Project are continued here. Any requirements from the earlier
assignments are carried over here unless explicitly modified and/or otherwise cancelled. If you feel that there
are any conflicts between any of the earlier requirements and the more recent requirements, then please seek
clarification immediately. In general, though, the newer requirements will take precedence.
This assignment involves implementing some of the core architecture and functional capabilities for the
Streaming Wars Project 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. You’ll have ample opportunity to develop a
more advanced graphical user interface during the group project.
Evaluation/Grading Your Submissions
 Your submission will be evaluated based on four main areas:
(1) 20 points for your system’s correctness: source code provided, the capability to recompile your code, etc.
(2) 40 points for correct operation of the system on the selected scenario (test) files
(3) 50 points for reasonably structured source code
(4) 40 points for your updated Class & Sequence diagrams
Don’t lose sight of the goal for the course: there are many more potential improvements that you could make
to this system, but you really need to think about how you will separate and distribute the complexity of the
overall problem across separate classes; and, how the objects instantiated from those classes then
communicate and collaborate to solve the problem. Helping you develop a solid structure for your design is the
most important aspect of working on this assignment.
(1) 20 points for your submission correctness: the capability to recompile your code, etc.
Common issues that cause you to lose points in this category:
 The code doesn’t function properly in docker 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.