Object-Oriented Modeling and Design with UML (2nd Edition)