• 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 EdDiscussion BEFORE the Due Date
if you are encountering difficulty submitting your project. Send the message to “Instructors”
when posting your message in EdDiscussion, 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.
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.
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 (at least in part) on the amount of effort needed to update
your most recent designs to accommodate the changed requirements.
EasyDue™ 支持PayPal, AliPay, WechatPay, Taobao等各种付款方式!
E-mail: firstname.lastname@example.org 微信:easydue