-
You have one and a half hours to take the exam.
-
If a question is unclear or
ambiguous, write down your assumptions.
-
The exam is closed book and closed notes.
-
You may consult one letter-size page (front and back) of
notes that you have prepared.
-
Write your answers on the exam.
If I can not read your answer clearly, it will be marked as
incorrect.
-
You will find some information on Java APIs, junit, and design
patterns at the end of the exam.
-
When drawing UML class diagrams, follow these guidelines:
- Be specific (prefer aggregation and dependency to association, prefer
composition to aggregation).
- Show mutiplicities on aggregations and compositions.
- Be careful with arrowheads and with dashed/solid lines.
- Clearly distinguish classes and interfaces.
- Clearly indicate static classes.
Here is a syllabus for the exam.
+ UML Object Diagrams
- objects (fields with value)
- relations
* link
+ UML Sequence Diagrams
- objects (lifetime) (also static classes)
- method/constructor call (lifetime and arguments)
- method/constructor return (value)
+ UML Class Diagrams
- classes (fields and methods with type and visibility)
- interfaces (methods with type and visibility)
- big arrow relations (triangular arrowhead)
* specialization
* realization
- small arrow relations
* aggregation
* composition
* dependency
+ Simple Idioms and OO programming techniques (using java)
- packages
- interfaces
- classes
- constructors
- delegation
- inner classes
- static versus object classes
- immutable data classes
- mutable data classes
- data object methods (equals, hashCode, compareTo, ...)
- collection classes
+ Patterns
- static factory
- builder
- command
- strategy
- state
- composite


