The Unified Modeling Language (UML) offers standard semantics and notation for describing object structure and behavior and has emerged as the design medium of choice for developing large-scale distributed object applications. Augmented by the Rational Unified Process, an extensive set of software development guidelines, and the Rational Rose visual modeling tool, the UML greatly facilitates the development of quality object-oriented applications that meet both deadlines and requirements