CS494, Endgame
What's Left to Do as of April 25


HW4:

You have a number of options for what to do for HW4. You can choose among the following or propose your own project. You can work in groups of at most two people.

Due: Friday, May 6, at 4 pm.

Option 1:

Choose an open-source project in Java that interests you and use Eclipse, JDepend and the UML design recovery tool to document its design. This might include some of all of the following:

In this assignment, we are looking for the kind of design recovery and analysis that you have practiced in the labs. We'll provide a few sample OSS systems that you can choose for this assignment, but you are welcome tackle your own.

Option 2:

HW3 had you create a design using the Observer design pattern for a stock portfolio system. Implement part of this so that you have a GUI implementation for at least one view of a domain object (say a WatchList). You must also implement the observer design pattern, of course.

You also must create your GUI design in a way that cleanly separates the GUI from the rest of the system, like the handout from Robert Martin's book showed you and as done in the Monopoly example does. You must do this so you can create JUnit testcases for your system (as done in both those examples).

If you are going to do this and you would like us to suppy you a StockManager class you can use, let us know as soon as possible.

Option 3:

Choose an open-source project in Java that interests you and use Eclipse's refactoring facilities to make a series of changes in that code that improve (maybe -- at least change the structure) of that code. You should find code that includes unit tests so that you can insure that the changes you made do not break the system.

Make a report that documents the series of refactorings you carry out, with some reason for why you tried them, and how this altered other parts of the code (if you can say).

Option 4.... Don't forget: you can propose some other option of your choosing, or a variation on one of these. If your project makes use of what we've learned about OOD, patterns, unit-testing, UML, etc., then it's probably fine. Email me with your proposal in advance.
Do something you like, think is worthwhile, etc.!


Skills demo:


Exam: