Assignment 8: The Music Editor:   Coda
1 Mechanics
2 Code issues
3 Evaluation
4 Grading standards
5 Submission
6.3

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—both interface and implementation—and the minimal amount of additional code needed to get those views to compile. If it turns out you need to send the bulk of your model implementation along...that means you’ve introduced a tight coupling between your view and your model, and incorrectly coded against the model interface. You will need to correct that and send your customers the updated code.

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

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.

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.