Skip to content
IRC-CodingIRC-Coding
UMLUnified Modeling LanguageClass DiagramSequence DiagramActivity DiagramOCLModelado

UML Fundamentos: Diagramas, Clases y Secuencias

Lenguaje visual estándar para modelar software. Diagramas estructurales, de comportamiento, relaciones de asociación, agregación y composición.

S

schutzgeist

3 min read
UML Fundamentos: Diagramas, Clases y Secuencias

Fundamentos de UML: tipos de diagramas, diagrama de clases, diagrama de secuencia y OCL

Este artículo es una explicación de conceptos sobre UML, incluidas preguntas de examen y etiquetas.

En pocas palabras

UML es un lenguaje visual estandarizado para modelar software y sistemas, que ofrece diagramas estructurados y orientados al comportamiento para documentar requisitos, diseño y comunicación de manera consistente.

Descripción técnica compacta

UML separa estructura de comportamiento. Los diagramas estructurales como el diagrama de clases y el diagrama de paquetes describen elementos estáticos, mientras que los diagramas orientados al comportamiento como el diagrama de actividades, diagrama de secuencia y diagrama de estados muestran procesos y reacciones. Las relaciones centrales son asociación, agregación, composición y generalización, complementadas por dependencias y realización. Las visibilidades controlan el acceso, las multiplicidades describen cardinalidades, los estereotipos y perfiles permiten adaptación a dominios específicos. Las restricciones textuales se formulan con OCL, por ejemplo invariantes, precondiciones y postcondiciones.

Puntos clave relevantes para exámenes

  • Diagramas estructurales como clases, objetos, paquetes, componentes, distribución
  • Diagramas de comportamiento como actividad, secuencia, comunicación, estados, casos de uso
  • Comprender relaciones: asociación, agregación, composición, generalización, realización, dependencia
  • Anotar cardinalidades correctamente y alinearlas con reglas de negocio
  • Usar OCL para condiciones precisas, derivar criterios de aceptación y pruebas
  • Modelar estados con condiciones de guardia y acciones, verificar transiciones relevantes para seguridad
  • Rentabilidad mediante detección temprana de errores y mejor comunicación
  • Versionar, revisar y aprobar modelos, documentar vinculación con requisitos y casos de prueba

Componentes clave

  1. Elementos de notación: clase, atributo, operación con visibilidad
  2. Relaciones: asociación, agregación, composición, generalización
  3. Multiplicidades y designaciones de rol en las aristas
  4. Paquetes, espacios de nombres, importación y reglas de visibilidad
  5. Componentes e interfaces con realización
  6. Elementos de actividad: acción, decisión, fusión, bifurcación, sincronización
  7. Elementos de interacción: línea de vida, mensaje, activación en el modelo de secuencia
  8. Máquina de estados con estados, transiciones, guardia, entrada y salida
  9. Perfiles, estereotipos, valores etiquetados para adaptaciones específicas del dominio
  10. OCL para invariantes, precondiciones, postcondiciones y casos de prueba derivados

Ejemplo práctico

Dominio: Préstamo en biblioteca

Diagrama de clases:
Clases: Lector, Medio, Préstamo
Relaciones: Lector a Préstamo (1 a *), Medio a Préstamo (1 a *)
Préstamo tiene atributos: fechaInicio, fechaFin, esExtendido
Operación: extender() con regla: fechaFin = fechaFin + 14 días si el medio es extensible

Secuencia: "Tomar medio prestado"
Actores: Lector, Sistema, Catálogo, ServicioPréstamo
Flujo:
1. Lector envía "Tomar medio prestado" al Sistema
2. Sistema consulta Catálogo sobre disponibilidad
3. Catálogo responde "disponible"
4. Sistema invoca ServicioPréstamo: crear Préstamo con Lector y Medio
5. ServicioPréstamo crea Préstamo y confirma, Sistema reporta éxito

Ejemplo OCL:
Context Préstamo::inv FechaDevolucionValida: self.fechaFin > self.fechaInicio

Ventajas y desventajas

Ventajas

  • Lenguaje común para negocio y tecnología
  • Mejor análisis y calidad de diseño
  • Derivación de pruebas más rápida
  • Documentación clara, mejor mantenibilidad

Desventajas

  • Esfuerzo de aprendizaje
  • Riesgo de modelos excesivos
  • Falta de obligatoriedad sin proceso y mantenimiento
  • Posibles malentendidos con notación inconsistente

Preguntas típicas de examen (con respuesta breve)

  1. ¿Categorías principales de diagramas UML? Diagramas estructurales (clases, paquetes, componentes) y diagramas de comportamiento (actividad, secuencia, estados, casos de uso).
  2. ¿Diferencia entre agregación y composición? Agregación = relación todo-parte débil sin vinculación del ciclo de vida, composición = relación fuerte con duración compartida.
  3. ¿Usar OCL en UML? Para restricciones formales precisas como invariantes, precondiciones y postcondiciones, que se pueden convertir fácilmente en pruebas.
  4. *¿Cardinalidades 1, , 0..1? 1 = exactamente un elemento, * = cero a muchos elementos, 0..1 = elemento único opcional.
  5. ¿Delimitar sistemas en UML? A través de límites del sistema en el diagrama de casos de uso e interfaces de paquetes y componentes.
  6. ¿Derivar casos de prueba de UML? A partir de escenarios en diagramas de secuencia/actividades y condiciones OCL.
  7. ¿Usar generalización? Cuando se extraen propiedades comunes en una clase base, las especializaciones extienden u anulan.
  8. ¿Diagrama de clases correcto para IHK? Clases con nombres significativos, atributos con tipos y visibilidad, operaciones, relaciones con cardinalidades, roles.

Fuentes más importantes

  1. https://www.omg.org/spec/UML
  2. https://martinfowler.com/books/uml.html
  3. https://de.wikipedia.org/wiki/Unified_Modeling_Language
Volver al blog
Share:

Nächster Artikel in Arquitectura de Software

Weiterlesen
UML Fundamentos: Diagramas, Relaciones y Cardinalidades

Entradas relacionadas