|
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
Homework 5: MVC and Beautiful CodeYour assignment is to take Anthony Messina's really cool genetic design program shown in class and turn it into a really cool, really well written genetic design program based on the MVC paradigm we've been discussing in class.Before starting, you should read the code carefully to make sure you understand how it currently works, where it has problems, both structurally and stylistically. You should then think about what the roles and responsibilities should be of the Model, the View, and the Controller. Lastly, with a clear plan in mind, you should write down in English the behavior of these roles with respect to the application as a whole. At the same time, for each of Model, View and Controller, you should be thinking about what the key abstractions are within each. Are there buttons? Special kinds of buttons? Animals, special kinds of Animals, Commands, etc etc... These abstractions probably deserve to be in their own class, and may even need to be in their own inner class. Once you've got a vision of how the system is supposed to hold together, you're then ready to start your "demolition" work breaking out functionality into different classes and class files.
What to turn inThere are three graded components to this assignment:Part 1 -- Due Tuesday, February 24th by 7pm.Part 1. Your "plan of action." This is what you need to prepare before you start coding. You do not need to write any code. You only need to describe how your new system will work. Doing part 1 will be useful to your midterm preparation.Part 2 -- Due Sat. Feb. 28, 11:59 pm.Turnin Here.Part 2. Your new system. This is what you actually build and run. It should look and feel exactly like the original system on the outside (at the GUI level), but have an internal implementation that uses MVC and is stylistically consistent with the work we've been doing in class and with the later versions of the JukeBox code. Specifically,
Part 3Part 3. Your "post mortem." Compare what you planned to build in Part 1 with what you actually built in Part 2. Consider the roles and responsibilities you had imagined for each of the Model, View and Controller. Where did you get it right? Where did you get it wrong? For where you got it wrong, explain what you learned during Part 2 that helped you understand a better way to do things.Due Dates
I recommend that you begin your work as soon as possible to help in your preparation for the midterm. Grading CriteriaPart 1:
The CodeClick here for the program.
|