Object- Oriented Software Engineering - Bernd Bruegge (New Jersey, 2000)