  The Unified Modeling Language (UML) is rapidly emerging as a de-facto
standard for modelling OO systems. Given this role, it is imperative that the
UML have a well- defined, fully explored semantics. Such semantics is required
in order to ensure that UML concepts are precisely stated and defined. In this
paper we describe and motivate an approach to formalizing UML in which formal
specification techniques are used to gain insight into the semantics of UML
notations and diagrams. We present work carried out by the Precise UML (PUML)
group on the development of a precise semantic model for UML class diagrams.
The semantic model is used as the basis for a set of diagrammatical
transformation rules, which enable formal deductions to be made about UML class
diagrams. It is also shown how these rules can be used to verify whether one
class diagram is a valid refinement (design) of another. Because these rules
are presented at the diagrammatical level, it will be argued that UML can be
successfully used as a formal modelling tool without the notational
complexities that are commonly found in formal specification techniques.
