Object-Oriented Analysis and Design with Applications by Grady Booch, James W. Newkirk & Robert A. Maksimchuk