Public Library - Objected Oriented Design / Classics

In this question, we ask you to design a system for a public library that allows the looking up of books. You must design the system in a way that is easily expandable.

This is a companion discussion topic for the original entry at