程序代写案例-EECS 3311

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
1

EECS 3311
SOFTWARE DESIGN
Due: Wednesday April 21st, 2021

INSTRUCTOR: Maleknaz Nayebi
RELEASE DATE: 12-Apr-2021
VERSION 1

FINAL EXAM

CONTEXT
The final exam forms 25% of your total grade in EECS3311.
This final exam is designed based on the concepts in Experimental Education and Hands-
on Learning to enable you to utilize your critical thinking and reflect on what you have
learned. This is based on our strong belief that "one size does not fit all,".
DELIVERABLES
A report with a maximum of 7,000 words in a PDF format should be submitted.
RUBRIC
1. Each question will be evaluated based on three criteria:
a) The way you reflect (25% of Point): the reflection should be multi-dimensional,
considering the pros and cons of each design decision, and should be fair. By
fairness, we mean that you do not necessarily need to be 100% agree with
what we have learned in the course.
b) The correctness of the answers (50% of the Point): the claims and the answer's
content should be aligned with reality and the language and perspective used
in the course.
c) The completeness of the answer (25% of the Point): Reflecting on the SUD
considering all the files, entities, classes and software and user aspects of the
project. So far, we have not emphasized the completeness as you were
gradually learning about the project.
2. 7,000 Words is a strict limit. For every 50 Extra words, you would lose 2 Points.
QUESTIONS
We can not guide you toward the answer or confirm what you have done is correct at any
level. You may ask questions in the live Q/A session on Monday April, 12th.
2

After this session, which is not being recorded, no questions will be answered by
Maleknaz or the TAs. You should answer the questions to the best of your
understanding.
POLICIES
Your (submitted or un-submitted) solution to this assignment (which is not revealed to the
public) remains the property of the EECS department. Do not distribute or share your
code in any public media (e.g., a non-private GitHub repository) in any way, shape, or
form before you get permission from your instructors.
• You are required to work on your own for this lab. No group partners are allowed.
• When you submit your solution, you claim that it is solely your work. Therefore, it is
considered a violation of academic integrity if you copy or share any parts of your
code or documentation.
• When assessing your submission, the instructor and TA may examine your doc/code,
and suspicious submissions will be reported to the department/faculty if necessary.
We do not tolerate academic dishonesty, so please obey this policy strictly.
• Emailing your solutions to the instruction or TAs will not be acceptable.
AMENDMENTS
• So far so good.
BACKGROUND
• All the material relevant to 12 Weeks of the course.
• Feedbacks received on projects and the midterm exam.
FORMAT
• All the content should be typed by computer. No manually drawn diagram or text
is acceptable.
• Make sure that all the text and diagrams are readable and submit only ONE file.
• Answer each question separately and include question numbers.
• Whenever asked to provide a code snippet or a pseudocode either provide a “good
quality and readable” screenshot from your IDE or make sure that the code
provided has proper syntax and color coding and/or Indentation.
3

DUE DATE
The Final exam submission is due on Wednesday April 21st, 2021 at 11:59 PM (EST
time zone).
For the students who submitted an accommodation letter the timing is already aligned as
per their letter.
YOUR System Under Discussion (SUD)
Among the below projects, you should continue working on the project you chose to do
your course project on (any deviation from that would result in a total zero for the exam).
ID Name Link Context
Proj_1 Real-time tracking of SARS-CoV-2 Accessible here.
Analyzing genomes to understand
how SARS-CoV-2, the virus that is
responsible for the COVID-19
pandemic, evolves and spreads.
Proj_2 COVID19 API Accessible here.
The API contains a number of
confirmed, death, and recovered
cases based on the data provided by
the Johns Hopkins University.
Proj_3 COVID19Py Accessible here.
A package for easy access to up-to-
date Coronavirus (COVID-19, SARS-
CoV-2) cases data
Proj_4 COVID Q/A Accessible here.
A Q/A platform for the answering
questions about COVID-19 using
recent news and developments.
Proj_5 Reverse COVID-19 Accessible here.
Applies techniques from software
reverse engineering to understand
the SARS-CoV-2 virus.
Proj_6 Covidify Accessible here. Time series analysis of COVID-19 pandemic filter by the location.
Proj_7 Corona Tracker Accessible here.
Full-stack web app for the public to
track the latest development of
Coronavirus.


4

EXAM QUESTIONS
* The questions are ordered in a way that answering each one will help you in responding to
the next.
** The exam includes BONUS questions. Answering these questions are not mandatory and
in case answered will provide additional points and you may end up in 100+ total for your final.
Total Points: 100
Total possible BONUS points: 18
Q1. Identify two instances of a complex design in your SUD. For each example, please
separately answer the below questions:
a. What symptom(s) of complexity led you to this identification? (2 Points for
each example)
b. What was the cause(s) of complexity in your identified area? (2 Points for
each example)
c. How do you solve the complexity? Explain the rationale, provide the code
snippet “as-is”, and as you suggest it “to-be” (refactored code) for a lower
complexity. (6 Points for each example)
d. [BONUS Question] Provide one additional example and answer all the three
above questions about it (2 Points).
Q2. Taking the user and domain expert perspective:
a. What use cases does your system cover? Create a table and provide a brief
use case scenario for each. (10 Points)
b. Design and provide a use case diagram of SUD. (8 Points)
c. [BONUS Question] Provide one new casual use case scenario. This use
case should describe a “new” scenario that is not yet included in the SUD
and is suggested by you. Locate it in your diagram and describe its
connection with other use cases (5 Points).
Q3. Provide a domain model for your SUD covering all the entities. (8 Points)
Q4. Provide a complete class diagram for your SUD. You may use any software or
plugin for this purpose or do it by looking into the code and design it manually
yourself. (5 Points)
5

Q5. Comparing your SUD’s domain model (Q3) with your class diagram (Q4):
a. What are the differences between your domain model and your class
diagram? (6 Points)
b. [BONUS Question] Provide one example that developers could successfully
isolate the domain and one example that they did not meaningfully isolate
the domain. How do you change the design for better isolation? (5 Points).
c. How do you change the classes and their methods to improve the design of
the SUD? Why? (5 Points)
d. Provide a UML diagram of the improved class design which you
recommend. (10 Points)
Q6. Identify one example in the SUD to implement the Design by Contract (DbC). How
do you implement DbC for this instance? Provide the code snippet “as-is” and how
you suggest “to-be”. A Pseudocode would be enough. (5 points)
Q7. Identify two locations in the code to implement a behavioral design pattern.
a. How does this design pattern improve the quality of your SUD’s design? (3
Points for each example)
b. Provide the code snippet of how you implement this pattern. A pseudocode
would be enough. (5 Points for each example)
c. [BONUS Question] implement the suggested pattern in Python. Follow the
instructions of lab 6 and commit the changes. Provide the pull request
number. The code should be running, the commit and pull request
messages should be clear (3 Points for implementing each example).
Q8. Design one “new” unit test for your code:
a. Provide the code. Pseudocode could be enough. (3 points)
b. Describe your design, your rational, and the importance of having this
particular unit test. (4 points)

STEP 3: SUBMISSION
• Please submit ONE pdf file including your report. This report should include the
below table on top of the first page of the submission.

6

Student Name
Student ID
GitHub User ID
Chosen Project (SUD)
• Submissions missing this table will not be accepted.
• Articles should be no more than 7,000 words, with a maximum of 15 references.
(Each figure and table counts as 250 words.)
• You can submit only one PDF.


欢迎咨询51作业君
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468