Using the Unified Modeling Language

Purpose

The Unified Modeling Language (UML) is a tool that can be used to specify requirements and document the components of an object-oriented system. The language provides many artifacts that enable a system designer to model a system from conception to deployment. This book will discuss the use of UML and provide a simple example to illustrate its features and power.

Overview

Development of software is a time consuming and often difficult task. As the requirements and size of a project get larger that development can become even harder. Many methodologies have been used over the years to help simplify the task of software development. Each methodology that has come along has tried to improve upon existing techniques and take advantage of improved technologies. The UML is a collaborative language developed by three important methodologists in the field of software construction: Grady Booch, Jim Rumbaugh, and Ivar Jacobson. Each author has contributed ideas from his own methodology and helped to define a unified and robust modeling language. The language itself is extremely powerful in the tools that it provides. It can be used in the initial conception phase of a project during requirements gathering. It can be used during the analysis of requirements to determine architectural scope and design. The language can be used for system design and construction. And finally, using modern CASE tools, it can be used for round-trip engineering to produce working code. A major benefit is that the documentation needed for a project is provided directly by UML. Software development is still hard, but is greatly simplified and made more manageable with the use of UML.

Tool Selection

As with any endeavor, the use of the proper tools is essential. It used to be the case that no design tools were available for software construction. Pencil and paper were the only real tools that could be used for analysis and design. This is no longer the case. There are many strong and capable products available that can be used for software construction. It is possible now to go from product conception all the way to final delivery completely under software control. Tools exist for requirements gathering, systems analysis and design, code construction, unit testing, and application deployment. For the analysis and design phase, the author prefers the Rational Rose toolset. It has the support needed for the analysis phase plus allows for round-trip engineering during the design phase. There are tools available from a variety of vendors such as Microsoft, Rational, Eclipse to name a few. A search for uml tools will reveal many more.