UML (Unified Modeling Language)

El UML (Unified Modeling Language) o Lenguaje Unificado de Modelado es, para el estudio de una oposición, el estándar esencial que debes dominar en el bloque de desarrollo de software. No es un lenguaje de programación, sino un lenguaje visual utilizado para especificar, visualizar, construir y documentar los artefactos de un sistema de software.  

Aquí tienes los puntos clave para interiorizar este concepto:

1. ¿Qué es exactamente?

UML proporciona una forma estándar de representar el diseño de un sistema. Fue creado para unificar los diferentes métodos de modelado orientado a objetos que existían en los años 90 (principalmente los de Booch, Rumbaugh y Jacobson). Es gestionado por el OMG (Object Management Group).  

2. Los Bloques de Construcción de UML

Para el examen, es vital distinguir entre los dos grandes tipos de diagramas que ofrece UML:

A. Diagramas Estructurales (Estáticos) Representan la estructura del sistema, es decir, sus componentes y cómo se relacionan entre sí en un momento dado.  

  • Diagrama de Clases: El más importante. Muestra las clases, sus atributos, métodos y las relaciones (herencia, asociación, agregación, composición).  
  • Diagrama de Objetos: Una «foto» de las instancias de las clases en un momento concreto.  
  • Diagrama de Componentes: Describe cómo se divide el sistema en componentes físicos y sus dependencias.  
  • Diagrama de Despliegue: Muestra la arquitectura física (nodos de hardware) donde se ejecutará el software.  

B. Diagramas de Comportamiento (Dinámicos) Representan cómo cambia el sistema con el tiempo o cómo interactúa con los usuarios.  

  • Diagrama de Casos de Uso: Describe la funcionalidad del sistema desde el punto de vista del usuario (actor). Es fundamental en la fase de Análisis de Requisitos.  
  • Diagramas de Interacción (Secuencia y Colaboración): Muestran el intercambio de mensajes entre objetos a lo largo del tiempo. Son clave para el diseño detallado.  
  • Diagrama de Estados: Describe los diferentes estados por los que puede pasar un objeto y las transiciones entre ellos.  
  • Diagrama de Actividades: Representa el flujo de trabajo o procesos, de forma similar a un diagrama de flujo tradicional.  

3. Importancia en la Oposición

UML se conecta directamente con otros temas que ya hemos visto:

  • Con Herramientas CASE: La mayoría de las herramientas CASE (como Enterprise Architect o Visual Paradigm) utilizan UML como base para generar diagramas y, en ocasiones, código fuente.  
  • Con el Ciclo de Vida:
    • En el Análisis, usarás diagramas de Casos de Uso.  
    • En el Diseño, usarás diagramas de Clases, Secuencia y Estados.  
  • Con el Proceso Unificado (RUP): RUP utiliza UML como su notación estándar por excelencia.

4. Características que suelen preguntar

  • No es un método: UML te dice qué símbolos usar, pero no te dice en qué orden hacer el diseño (eso lo hace la metodología, como RUP o Ágil).  
  • Extensibilidad: UML permite crear «Estereotipos» para adaptar el lenguaje a necesidades específicas (por ejemplo, para modelar bases de datos o sistemas web).