Object-oriented Modeling And Design With Uml by James Rumbaugh & Michael Blaha