Java代写 | CS6310 – Software Architecture & Design Assignment #1
Grocery Express Project – Analysis & Design
You are being asked to design and develop a system to monitor deliveries of grocery items to
customers. This system will support a “third party” grocery service. Customers will place orders with
various stores using the service. The service will coordinate with grocery stores to find the items (at
variable – but hopefully the lowest – prices) and arrange for a drone to deliver the items to the
customer. On delivery, the store will be paid electronically by the customer.
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.
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,
correctness, 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 might 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.