The final exam will be on Monday, May 18, from 12:15-2:30 in MH 422.
Please bring your laptops to the exam. There will be about three questions. These questions may involve writing or modifying .java files, generating class diagrams, and short text answers. At the end of the exam you will zip your solutions together and email them to me.
Please make sure your laptop has the correct software installed, can get on the university's wireless network without problem, and has sufficient power. If you need an electrical outlet, bring a power strip so that others can share.
The exam will probably have 3 – 4 questions. These questions will involve creating UML diagrams with StarUML (or some other CASE tool) and writing or completing Java programs.
The final will be comprehensive, so be sure to review the Midterm Study Guide. Also, be sure you can answer all questions from the Midterm.
The OOD Labs contain lots of problems worth reviewing.
Here are some of the major patterns that were introduced after the midterm:
Model-View-Controller (refined by the Publisher-Subscriber pattern)
Command Processor
Memento
Factory Method
Abstract Factory
Singleton
Interning
Many of these patterns can be combined together into a single application framework:

The behavior of the framework can be captured by a sequence diagram:

The Factory pattern can be used by the user interface (UI) to create commands.
The Abstract Factory pattern (or the Builder pattern) can be used to create the entire application. (This is explained in detail in the App Factory Project (which was never assigned but is a good example to study.)
The command processor is a good candidate for the Singleton pattern.
Of course the user interface (UI) may instantiate the Composite and the Publisher-Subscriber pattern:

We can see this graphically in the BrickCAD GUI:

(This screen shot is taken from Li Yang's excellent implementation of BrickCAD.)
A UI component is a publisher because it can publish events. In Java the subscribers are called listeners. (See The Java Event Delegation Model.)
See the OOD labs, in particular the enterprise labs.