Object-Oriented Analysis and Design (UML version 2.0)