The Unified Modeling Language, or the UML (Booch, Jacobson & Rumbaugh, 1999), has rapidly emerged as a standard language and notation for object-oriented modeling in systems development, while the accompanying Unified Software Development Process (Jacobson, Booch & Rumbaugh, 1999) has been developed to provide methodological support for application of the UML in software development. The UML is a non-proprietary modeling language managed by the Object Management Group, a not-for-profit consortium, which also manages several related modeling specifications. The UML has evolved from its initial version, with UML 2.0 formally adopted by the OMG in June 2003. This article is based on the UML 1.5 specifications (OMG, 2003), as those for UML 2.0 have not been finalized. However, the role of use cases appears to be essentially unaffected by the changes proposed for UML 2.0.