¿Qué es UML?
UML significa Lenguaje de Modelado Unificado, que es un lenguaje de modelado estandarizado que consta de un conjunto de 14 tipos diferentes de diagramas UML.
¿Por qué usar UML?
Al utilizar UML, todo el diseño de software es más fácil de leer y entender antes del desarrollo de software, reduciendo así los riesgos de desarrollo. Además, facilita la comunicación entre diferentes desarrolladores.
UML proporciona un lenguaje de modelado muy expresivo que permite a diferentes personas en el proceso de desarrollo de software obtener la información que les interesa.
Los principales propósitos de UML se pueden resumir como sigue:
- Proporcionar a los usuarios un lenguaje visual de modelado listo para usar y muy expresivo, para que puedan desarrollar y comunicar modelos significativos en un esfuerzo colaborativo del equipo.
- Proporciona mecanismos de extensibilidad y especialización para los conceptos centrales.
- Independiente de un lenguaje de programación específico y de un proceso de desarrollo.
- Proporciona una base formal para comprender los lenguajes de modelado.
- Fomenta el desarrollo del mercado de herramientas orientadas a objetos.
- Soporte para conceptos de desarrollo de nivel superior, como colaboración, marcos, patrones y componentes.
- Integrar mejores prácticas.
¿Qué son los diagramas UML?
- Los diagramas UML se dividen en diagramas estructurales y diagramas comportamentales.
- Los diagramas estructurales se dividen en diagramas de clases, diagramas de perfiles, diagramas de componentes, diagramas de estructura compuesta, diagramas de objetos, diagramas de despliegue y diagramas de paquetes.
- Los diagramas comportamentales se dividen en diagramas de actividades, diagramas de casos de uso, diagramas de máquinas de estado e diagramas de interacción.
- Los diagramas de interacción se dividen aún más en diagramas de secuencia, diagramas de secuencia, diagramas de comunicación y diagramas de visión general de interacción.

14 tipos de diagramas UML
- Diagrama de clases – Un diagrama de claseses un diagrama estático que describe la estructura de un sistema mostrando sus clases, sus propiedades y operaciones, así como las relaciones entre objetos.
- Diagrama de casos de uso – Un diagrama de casos de usoconsta de casos de uso, roles y las relaciones entre ellos. Muestra cómo los usuarios interactúan con el sistema y define las especificaciones de los casos de uso.
- Diagrama de secuencia – Un diagrama de secuenciaes un modelo para la comunicación entre objetos de forma secuencial. Muestra el orden exacto de objetos, clases y roles, y la información involucrada en un escenario. Está compuesto por líneas verticales que pertenecen a líneas de vida y líneas horizontales de mensajes.
- diagrama de actividad – Un diagrama de actividades un diagrama de comportamiento que muestra un escenario en términos del flujo de acciones. Modela una secuencia de acciones, decisiones basadas en condiciones, ramas concurrentes y diversos bucles.
- diagrama de comunicación – Un diagrama de comunicaciónmuestra la interacción entre objetos y partes en forma de mensajes, que se representan mediante líneas de vida. Un diagrama de comunicación es una forma modificada de un diagrama secuencial de UML, pero se diferencia de él en que sus elementos no necesitan estar ordenados horizontalmente y pueden tener cualquier posición en el diagrama.
- diagrama de máquina de estados – Un diagrama de máquina de estadosdescribe el estado de una entidad (dispositivo, proceso, programa, software, módulo, etc.) y las transiciones entre estados. Las condiciones especifican cuándo se puede utilizar una transición de un estado a otro.
- diagrama de objetos – Un diagrama de objetoses un diagrama UML estructurado. Describe un sistema o sus partes en un momento determinado. Modela instancias, sus valores y relaciones. Puede usarse para mostrar ejemplos de estructuras de datos.
- diagrama de paquetes – Un diagrama de paquetesmuestra las dependencias entre paquetes en un modelo. Describe la estructura y organización de proyectos a gran escala.
- diagrama de componentes – Un diagrama de componentesproporciona una vista de un sistema complejo. Describe las interfaces proporcionadas y/o requeridas por las diversas partes del sistema y las relaciones entre esas partes. Estas partes se representan mediante componentes y otros artefactos.
- diagrama de despliegue – El diagrama de desplieguedescribe el despliegue de artefactos en un nodo de red. Se utiliza para mostrar la ubicación de artefactos (software, sistemas, módulos, etc.) en nodos físicos (hardware, servidores, bases de datos, etc.) y las relaciones entre partes específicas de la solución.
- Diagrama de estructura compuesta – El diagrama de estructura compuestamuestra la estructura interna de un clasificador, sus partes y puertos, a través de los cuales se comunica con su entorno. Modela la colaboración, donde cada elemento tiene un papel definido.
- Diagrama de vista general de interacción – El Diagrama de vista general de interacciónproporciona una visión de alto nivel de las interacciones en un sistema o sub-sistema. Describe procesos de manera similar a los diagramas de actividad, pero utiliza otros diagramas de interacción y referencias de interacción en lugar de nodos de acción.
- Diagramas de tiempo – El diagrama de tiempose centra principalmente en el tiempo, y describe los cambios en el clasificador a lo largo de una línea de tiempo. Las líneas de tiempo se apilan verticalmente, con el tiempo aumentando de izquierda a derecha.
- Diagrama de perfil – El Diagrama de perfildescribe y define extensiones al lenguaje UML. El mecanismo de extensión permite adaptar el lenguaje a un dominio o plataforma específica. Las extensiones se definen mediante estereotipos.
¿Qué es un diagrama de clases?
El diagrama de clases es la herramienta fundamental de modelado de todos los métodos orientados a objetos. Los diagramas de clases describen los tipos de objetos en el sistema y las diversas relaciones estáticas que existen entre ellos. Se utiliza para representar clases, interfaces y las estructuras y relaciones estáticas entre ellas.
- Generalizaciónrelación es una relación de herencia, lo que indica que una subclase hereda todas las características y comportamientos de la clase padre. Una línea sólida con una flecha triangular, la flecha apunta hacia la clase padre.
- Realización relación es una relación entre una clase e una interfaz, lo que indica que la clase es la implementación de todas las características y comportamientos de la interfaz.Una línea punteada con una flecha triangular, la flecha apunta hacia la interfaz.
- Asociaciónrelación es una relación de propiedad, que permite que una clase conozca las propiedades y métodos de otra clase.Una línea sólida con una flecha común apunta al propietario.Las asociaciones bidireccionales pueden tener dos flechas o ninguna flecha.Una asociación unidireccional tiene una flecha.
- Agregaciónrelación es una relación entre un todo y una parte. Y la parte puede existir independientemente del todo. La relación de agregación es un tipo de relación de asociación y es una relación de asociación fuerte; la asociación y la agregación no pueden distinguirse gramaticalmente, y se deben examinar relaciones lógicas específicas. Línea sólida con diamantes huecos, los diamantes huecos apuntan al todo.
- Composición relación es una relación entre un todo y una parte. Pero la parte no puede existir de forma independiente del todo. Es un tipo de relación de asociación, que es más fuerte que la relación de agregación. Una línea continua con un diamante sólido, que apunta hacia el todo.
- Dependencia relación es una relación de uso, es decir, la implementación de una clase requiere la ayuda de otra clase. Es una línea punteada con flechas ordinarias, las flechas ordinarias apuntan hacia el usuario.

¿Qué es un diagrama de casos de uso?
Un diagrama de casos de uso es una vista que describe la funcionalidad de un sistema compuesto por actores, casos de uso, límites y sus relaciones. Se utiliza para describir la función del sistema completo.
El diagrama de casos de uso contiene las siguientes tres relaciones:
- La relación include utiliza el símbolo “include”. Si desea ver la lista de pedidos, primero debe iniciar sesión.
- La relación extend utiliza el símbolo “extend”. Basado en la función de consultar la lista de pedidos, se puede agregar una función de exportar datos.
- La relación de generalización, el caso de uso hijo hereda toda la estructura, comportamiento y relaciones del caso de uso padre.

¿Qué es un diagrama de secuencia?
- Un diagrama de secuencia muestra cómo los objetos colaboran según una serie temporal. Muestra cómo los objetos interactúan con otros objetos en un escenario específico de un caso de uso. Muestra la colaboración dinámica entre múltiples objetos describiendo la secuencia temporal de los mensajes enviados entre ellos.

¿Qué es un diagrama de actividad?
El diagrama de actividad describe el proceso de implementación de casos de uso empresariales específicos. Se utiliza para representar el flujo de trabajo empresarial o la realización del caso de uso.

¿Qué es un diagrama de comunicación?
El diagrama de comunicación describe la relación organizativa de los objetos que envían y reciben mensajes, enfatizando la relación cooperativa entre los objetos en lugar del orden cronológico. Se utiliza para mostrar la relación entre diferentes objetos.

¿Qué es un diagrama de máquina de estados?
Un diagrama de máquina de estados modela el comportamiento de un objeto individual, indicando el orden en que el objeto ejecuta eventos relacionados en respuesta a diferentes eventos a lo largo de su ciclo de vida. Se utiliza para indicar que el objeto especificado responde a diferentes estados de diferentes eventos a lo largo de su ciclo de vida.

¿Qué es un diagrama de objetos?
Un diagrama de objetos es una instancia de un diagrama de clases, una instantánea del estado detallado del sistema en un momento determinado. Se utiliza para expresar la relación entre dos o más objetos en un momento determinado.

¿Qué es un diagrama de paquetes?
Diagrama de paquetes, un tipo de diagrama estructural, muestra la disposición y organización de los elementos del modelo en proyectos de mediano a gran tamaño. Se utiliza para expresar las dependencias entre paquetes y paquetes.

¿Qué es un diagrama de componentes?
El diagrama de componentes describe las interfaces, puertos, etc., que proporcionan y requieren los componentes del sistema, así como la relación entre ellos. Se utiliza para mostrar las dependencias entre componentes.

¿Qué es un diagrama de despliegue?
El diagrama de despliegue describe cómo el software dentro del sistema se distribuye en diferentes nodos. Se utiliza para representar la relación de mapeo entre software y hardware.

¿Qué es un diagrama de estructura compuesta?
El diagrama de estructura compuesta describe la estructura interna de una “estructura compuesta” y la relación entre ellas. Esta “estructura compuesta” puede ser parte del sistema o un todo. Se utiliza para representar la estructura lógica de combinación en el sistema.

¿Qué es un diagrama de vista general de interacción?
Un diagrama de vista general de interacción es similar a un diagrama de actividad en que proporciona un alto nivel de abstracción para un modelo de interacción. Es una variante del diagrama de actividad en la que los nodos son interacciones o situaciones en las que ocurren interacciones. Se centra en delinear el flujo de control de una interacción y también puede mostrar el flujo de actividad entre diagramas.

¿Qué es un diagrama de temporización?
Un diagrama de temporización se utiliza para mostrar los cambios en el valor o estado de uno o más elementos con el tiempo. También muestra las interacciones entre eventos temporizados y las restricciones de tiempo y plazos que los regulan.Una vista utilizada para representar el estado o valor de un elemento que cambia con el tiempo.

¿Qué es un diagrama de perfil?
Un diagrama de perfil proporciona un mecanismo de extensión genérico para personalizar modelos UML para dominios y plataformas específicos.Se utiliza para crear modelos UML en un dominio específico.

¿UML es enorme y complejo?
UML es realmente un tema enorme. UML proporciona una gran cantidad de notación de diagramas agrupados en 14 tipos diferentes de diagramas UML, cada uno con modelos UML distintos, que cumplen propósitos diferentes y abordan distintos aspectos de las necesidades de desarrollo.
- Cada diagrama UML de los 14 tipos de diagramas UML proporciona un amplio conjunto de constructos y notación que cubren necesidades diferentes para la mayoría de los proyectos de desarrollo de software.
- La especificación de UML tiene más de 700 páginas, y claramente se considera demasiado compleja y tiene un impacto negativo en la percepción y adopción de UML.
- Normalmente, los usuarios tienden a considerar y utilizar solo una parte de sus diagramas/constructos de UML.
Aprende los diagramas UML más esenciales y su notación
Grady Booch, uno de los desarrolladores más importantes del Lenguaje Unificado de Modelado, afirmó que “Para el 80% de todos los software solo se necesita el 20% de UML”.
¿Qué dice la encuesta sobre UML?
Podríamos interpretar los resultados de la encuesta sobre UML asumiendo que, si un diagrama es
- ampliamente utilizado, si es ≥ 60% de las fuentes
- escasamente utilizado si es ≤ 40% de las fuentes

Elabora tu plan de aprendizaje de UML
Basado en los datos recopilados en la encuesta, puedes tener una mejor idea sobre cómo comenzar tu viaje de aprendizaje de UML al desarrollar un plan de aprendizaje de UML significativo.
Recursos del Lenguaje Unificado de Modelado (UML):
- ¿Qué es UML?
- ¿Por qué modelado con UML?
- Visión general de los 14 tipos de diagramas UML
- ¿Qué es un diagrama de colaboración UML?
- Asociación UML vs Agregación vs Composición
- Tutorial de diagrama de clases UML
- ¿Cómo modelar restricciones en UML?
- Diagrama de máquinas de estado vs diagrama de actividades
- ¿Cómo identificar actores?
- Tipos de actor en el modelo de casos de uso
- ¿Qué es Modelo-Vista y Control?
- ¿Cómo modelar el marco MVC con un diagrama de secuencia UML?
- UML – Diagrama comportamental frente a diagrama estructural
- ¿Qué es el mecanismo de extensibilidad de UML?
- Guía práctica de UML – Todo lo que necesita saber sobre modelado con UML
- Modelado con UML, proceso de software y herramienta
- UML – Modelado de arquitectura de software con paquetes
- Todo lo que necesita saber sobre diagramas de estado












