Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema.
En otras palabras, es el lenguaje en el que está descrito el modelo.
UML no puede compararse con la programación estructurada, pues UML significa Lenguaje Unificado de Modelado, no es programación, solo se diagrama la realidad de una utilización en un requerimiento.
Mientras que la programación estructurada es una forma de programar como lo es la programación orientada a objetos (POO), la POO ha sido un complemento perfecto de UML, pero no por eso se utiliza UML solo para lenguajes orientados a objetos.
Poco después se les unió Ivar Jacobson, el creador del método de ingeniería de software orientado a objetos.
Bajo la dirección técnica de los Tres Amigos (Rumbaugh, Jacobson y Booch) fue organizado un consorcio internacional llamado UML Partners en 1996 para completar las especificaciones del UML, y para proponerlo como una respuesta al OMG RFP.
Durante el mismo mes, la UML Partners formó una Fuerza de Tarea Semántica, encabezada por Cris Kobryn y administrada por Ed Eykholt, para finalizar las semánticas de la especificación y para integrarla con otros esfuerzos de estandarización.
Conceptos de muchos otros métodos orientados a objetos (MOO) fueron integrados superficialmente en UML con el propósito de hacerlo compatible con todos los MOO.
A estas le ha seguido la revisión mayor UML 2.0 que fue adoptada por el OMG en 2005.
Estos últimos incluyen varios que representan diferentes aspectos de las interacciones.
Al igual que los diagramas de clases, también muestran la relación entre los objetos, pero usan ejemplos del mundo real.
Este es un tipo de diagrama que se utiliza muy raramente en cualquier especificación.
A veces, los diagramas de actividad se utilizan como una alternativa a los diagramas de máquina del estado.
Es un gran punto de partida para cualquier discusión del proyecto, ya que se pueden identificar fácilmente los principales actores involucrados y procesos del sistema.
Es importante tener en cuenta que muestran las interacciones para un escenario en particular.
Es similar a los diagramas de secuencia, pero el foco está en los mensajes pasados entre objetos.