Exam 2, Spring 03
When is the final: Friday, May 9, 2-5 pm.
Earlier alternative: Monday, May 5, 7-10 pm. Olsson 120.
Comprehensive?
No, the final is not comprehensive. It will be the same length or slightly longer than Exam 1.
However, there will be a optional 2nd part that you can take to help redeem a poor score on Exam 1. More details
of this will be sent out by email by the end of Friday.
Topics:
- Design patterns, including Singleton, Factory, Abstract Factory, Observer, Composite, and those mentioned in
the readings.
- UML sequence diagrams as used for use-cases and for modeling design.
- Software architecture: Principles of SW architecture. How to model architecture. Layered models. The "4+1"
model.
- OO Design and UML. 5-layer model. Additional classes needed. Controller classes. Implementing associations,
including multiplicities and navigation. Association classes and their implementation.
- What makes good OO design. Cohesion, coupling. When inheritance isn't good. Abstract coupling using interfaces,
superclasses. Coad's guidelines for inheritance, and the example of Java's implementation of Observer design pattern.
OO design principles from Knoernschild. Law of Demeter.
Readings:
- Ambler, Chapter 6 (6.1, 6.2, 6.6, 6.7, 6.9)
- Ambler, Chapter 7 (7.1-7.3)
- Handout on Law of Demeter
- Chap. 1 of Kirk Knoernschild's book on Web (except 1.2) http://www.kirkk.com/JOUP.html
- Short handout on controller classes (pp 157-160) of Knoernschild's book.
- Handout on Factory and Abstract Factory patterns
- Handout on Observer pattern
- Handout on Composite pattern
- Slides on Web: those from March 25/27 until the end of term
- From your Java book, read enough to be able to fully understand slides on Java and Swing. (This includes containers,
events, events, event handlers.) You won't be asked to write lengthy chunks of code, but maybe asked about code
snippets or asked short-answer questions requiring knowledge of how these are implemented.)