Assignment 8: The Music Editor: Coda
Due: Sat 04/15 at 8:59pm; self-evaluation due Sun 04/16 at 8:59pm
This assignment is to be completed with the same partner as Homework 7, unless you’ve already contacted the course staff.
This week you will adapt another group’s views to your own model and controller.
1 Mechanics
All partners have been assigned another pair of partners (your “upstream providers”) to request code from. You have been emailed their names (and email addresses): email those people to obtain their code. You should expect to need to email them a few times this week, as you find issues with their code that you can’t work around or repair yourselves.
Conversely, you should expect to spend some time this week supporting the
people who have requested code from you (your “downstream customers”). You
should send them your views—
2 Code issues
Since both you and your providers have written code for this assignment, it’s
entirely possible that you and they have defined classes or interfaces with the
same exact names, in the same exact packages. This will make things nearly
impossible, so you should refactor your providers’ code to live in the
cs3500.music.provider
package, instead of the cs3500.music.view
package. You should not change anything else about their code.
In general if the views provided to you do not implement a feature that your views did (and your controller and model support) you are not responsible for changing the provided views to implement those features. Make sure you mention them in the code evaluation below. Conversely if you get a view that implements optional features you are not required to make them work with your model and controller. If required features are incomplete you can expect the other group to make an effort to complete them, and conversely you must make an effort to complete them for your customers.
You are expected to make all the views given to you work with your model and controller, but emphasizing more on the composite view from Assignment 7. You should highlight why you were not able to do so in the code evaluation as applicable.
3 Evaluation
As customers of a provider’s code, you have the opportunity to praise, critique, comment upon, and suggest improvements to their code. In short, you should provide a code review of their code.
In that review, consider all the self-evaluation questions you have been asked during this course, and extrapolate from them the kinds of issues to examine. For example: how flexible is the interface you were given? How capable are the views? How convenient was it to reuse their code, or adapt their interface to your expectations? How cleanly written and well-documented was their code? If you needed to request changes from them, definitely explain what changes were needed and why.
Write a short (3-4 paragraph) review of their code.
Please concentrate on writing a review that is honest, but constructive. The reader should be able to understand what was wrong, and how to correct it. Please avoid simply criticizing the code given to you with no suggestions on how to make it better. Similarly avoid blanket praise: every implementation has flaws or limitations! Most importantly, please be professional in your writing.
4 Grading standards
For this assignment, you will be graded on
the coherence and thoroughness of your review of your providers’ code,
the coherence and quality of your customers’ review of your code, and
the quality and completeness of your final submission.
You will not be graded (much) on the code you send to your partners: that should be essentially the same code you submitted for homework 7. It will simply be style-checked, and worth a small portion of your overall homework 8 grade, to ensure that you submit something we can compare against your customers’ use of your code.
There will be two self-evals: a short one about the code you sent to your customers, and a longer one about the code you needed to write for this assignment. Make sure that you complete both. (Having two separate ones is necessary, so that you can tag lines in each submission correctly.)
5 Submission
Submission of this project will be divided into two parts: the code you provided others, and the code you worked on.
Submit the final version of the files you sent your customers to the assignment hw8-views.
Submit a readme explaining which files you changed for your customers, and why the changes were needed, to hw8-views.
Submit any files created or modified in this assignment to the assignment hw8.
Submit your review of your providers’ code to the assignment hw8.
Submit a JAR file (with extension
.jar
) file that can run your program, again to hw8.
To create a JAR file, follow the instructions from Assignment 7: The Music Editor: Third Movement.
Please submit your homework to https://handins.ccs.neu.edu/ by the deadline above, and the self-evals by their deadline.