The UML is commonly defined as ‘a standard language for specifying, constructing,
visualizing, and documenting the artifacts of a software system’. Analogous to the use
of architectural blueprints in the construction industry, the UML provides a common
language for describing software models. The UML does not prescribe any particular
methodology, but instead is flexible and customizable to fit any approach and it can
be used in conjunction with a wide range of software lifecycles and development
processes.