Final Exam Review

When and Where

The final exam will be on Monday, May 18, from 12:15-2:30 in MH 422.

What to Bring

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.

What to Expect

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.

What to Study

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.

Post Midterm Topics

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.)

Sample Problems

See the OOD labs, in particular the enterprise labs.