Designing small-to-medium systems at the class and interface level — the interview-style OO round.
A repeatable approach to object-oriented design interviews — clarify, model, extend.