CS 2334 - Programming Structures and Abstractions

Honors Assignment 3 — Comparison Three

Due Tuesday, December 3, 2013, 1:30pm

Note: Due to time constraints, "Collections" has been dropped from our list of topics and MVC is now the topic of Honors Assignment 3 rather than Honors Assignment 4.

As discussed in class, model-view-controller (MVC) is a powerful design pattern often used to organize GUI-based and event-driven programs. However, there is not a single MVC design pattern but several related but different design patterns. The MVC version we have considered during class is summarized in the following diagram:

MVC Figure

One alternative MVC version puts the controller between the model and the view for all communications, as shown in this diagram from Apple:

Apple MVC Figure

This assignment explores the design trade-offs between these two MVC patterns.

The assignment.

Design and implement an MVC Circle program like the one from the textbook but using the alternative MVC version. In doing this, be sure to:

Write a paper discussing these two versions of MVC. In your paper, be sure to do the following:

You may cover these points in any order that clearly conveys the information required.

Your comparison paper should be approximately three to five pages in length (roughly 80 characters per line, 50 lines per page). Note that this is a guideline range. Values somewhat outside this range are acceptable. However, if you go much over five pages, I may take off points for being excessively verbose. This page range does not include figures used in your explanations, which are encouraged and may take up any amount of space.

What to turn in.

Turn in an electronic copy of this document as a PDF file by submitting it to the appropriate droxbox in D2L along with the Eclipse Project File of your implemented MVC Circle program and a paper copy of this document at or prior to the start of the class period on the due date. Both the electronic and written submissions should include the UML you created for this assignment.