Object-Oriented Software Engineering: - Bernd Bruegge (Prentice Hall, 2004)