For nearly ten years, the Unified Modeling Language (UML) has been the industry standard for visualizing, specifying, constructing, and documenting the (71) of a software-intensive system. As the (72) standard modeling language, the UML facilitates communication and reduces confusion among project (73) . The recent standardization of UML 2.0 has further extended the language's scope and viability. Its inherent expressiveness allows users to (74) everything from enterprise information systems and distributed Web-based applications to real-time embedded systems. The UML is not limited to modeling software. In fact, it is expressive enough to model (75) systems, such as workflow in the legal system, the structure and behavior of a patient healthcare system, software engineering in aircraft combat systems, and the design of hardware. To understand the UML, you need to form a conceptual model of the language, and this requires learning three major elements: the UML's basic building blocks, the rules that dictate how those building blocks may be put together, and some common mechanisms that apply throughout the UML.