辅导案例-CSCI 4440

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
CSCI 4440 — Software Design and Documentation
Midterm Exam (document version 1.1) — DUE November 19, 2020
• The take-home midterm exam is to be completed individually and is due by 11:59PM ET
on the due date shown above
• As an individual assignment, please do not share your work with others; the work on this
assignment is to be your work and only your work
• Note that in order to pass this course, you must receive a passing grade on this
exam
• (v1.1) Your grade will be out of 50 points
Overview
The goal of this exam is to test your written communication and critical thinking skills. Your
answers should reflect your own understanding of the course material.
As an “open book and open notes” exam, you should certainly make use of the posted course
materials. Beyond this, use of any of the textbooks or other resources must be properly cited
both within your answers and at the end of your exam (i.e., as a List of References). You must
use at least four distinct published books, industry magazines, and/or reputable Web articles; you
cannot use Wikipedia as a reference. (v1.1) Use MLA or any well-known format for your references;
please be consistent.
One suggested resource is available here: https://tinyurl.com/y5t3frqv (Head First Object-
Oriented Anaylsis and Design by McLaughlin et al.)
Grammar, spelling, and correctly citing references make up a significant part of your grade on this
exam. You are therefore required to have a draft of your midterm exam reviewed by the Center
for Global Communication and Design (https://commd.rpi.edu/).
(v1.1) Comm+D is able to have one visit from each of you. To ensure you have a fruitful visit,
you should have at least a few parts of Question 1 and a draft of Question 2 completed beforehand.
Sign up for either a live session or upload a PDF to receive written feedback within 24 hours. And
to receive credit, be sure to include “CSCI 4440 SD&D” when you sign up.
Finally, plagiarism will result in a zero on this exam and therefore an F in this course.
What to submit
Please submit a single PDF that includes your name and RCS ID (e.g., goldsd3). Start each
question on a new page and please include the text of the question or part before each of your
answers.
DUE November 19, 2020
1. (30 POINTS) Select an existing open source application or framework, then identify two
essential non-trivial features that you would like to add. You can make these up or develop
these from pre-existing feature requests (e.g., the open source project’s “wish list”).
Be sure you select features that are interesting and complex enough to show your understand-
ing of object-oriented analysis and design. In particular, you should show your understanding
of abstraction, low coupling, high cohesion, encapsulation, generalization (a.k.a. inheritance),
and polymorphism.
The required deliverables/artifacts are as follows:
(a) In a few paragraphs, describe the open source application or framework that you have
selected. Include a brief overview of the project that describes its key features, as well
as what distinguishes it from other similar projects. Be sure to include URL(s) for the
pre-existing open source project.
(b) Next, list the stakeholders and their specific interests in the project.
(c) In a few paragraphs, describe your proposed features, including why stakeholders would
find such features interesting and useful. Also include at least three potential risks.
(d) Provide at least six fully dressed use cases (see Mini-Assignment 1) that capture the
behavioral requirements for your new features. If you cannot come up with six use cases,
ask yourself whether your new features are “interesting” enough (or develop use cases for
pre-existing features within the given project).
(e) In addition to the use cases, provide a table of requirements that includes the five columns
referred to in Mini-Assignment 2. Focus on requirements beyond what is already docu-
mented in your use cases.
(f) Based on artifacts (a)-(e) above, perform a detailed object-oriented analysis and construct
at least two class diagrams. Be sure your focus is purely on the problem domain (i.e., do
not include design or implementation details yet).
(g) Once artifact (f) is complete, translate this into a comprehensive object-oriented design
by producing at least three class diagrams.
Your class diagrams should include aspects of the original application design such that the
new classes are presented in context with the pre-existing system. To make this clear in
your diagrams, use the «pre-existing» stereotype for any classes that already essentially
exist.
(h) In a few paragraphs, explain your diagrams and specific decisions related to abstraction,
low coupling, high cohesion, encapsulation, generalization, and polymorphism. Also de-
scribe at least three design patterns that you made use of for artifact (g).
Be sure your UML diagrams are correct in relation to the lecture slides and notes.
2
2. (20 POINTS) Write a comprehensive essay of at least 1000 words that summarizes the state
of software development today. More specifically, highlight the successes (i.e., what we as a
society have gained) and also the failures (i.e., why software is problematic).
Although this is an open-ended question, be sure to consider why software continues to be so
buggy, what negative impacts software defects cause, and how certain populations have been
demonstrably harmed by software systems. Further, answer the question as to whether the
software development process we have discussed in this course can help us avoid such negative
results.
3

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

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468