Object Oriented Modeling and Design by James Rumbaugh