<style> .hero { padding: 2.5rem 1.5rem; border-radius: 18px; background: linear-gradient(135deg, #0f172a, #1e3a8a); color: white; margin-bottom: 2rem; } .hero h1 { margin: 0; font-size: 2.4rem; } .hero p { font-size: 1.1rem; opacity: .95; margin-top: .75rem; } .badge { display: inline-block; background: rgba(255,255,255,.18); padding: .35rem .8rem; border-radius: 999px; font-size: .85rem; margin-bottom: 1rem; } .note, .warning, .tip, .box { border-radius: 14px; padding: 1rem 1.1rem; margin: 1rem 0; border-left: 6px solid; background: #f8fafc; } .note { border-color: #2563eb; } .warning { border-color: #f59e0b; } .tip { border-color: #10b981; } .box { border-color: #7c3aed; } .grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } .grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } .card { border: 1px solid #e2e8f0; border-radius: 16px; padding: 1rem; background: white; box-shadow: 0 4px 14px rgba(0,0,0,.05); } .card img { width: 100%; border-radius: 12px; margin-bottom: .75rem; } .toc { background: #f1f5f9; border-radius: 16px; padding: 1rem 1.2rem; border: 1px solid #e2e8f0; } .toc ul { margin: .5rem 0 0 1.2rem; } @media (max-width: 900px) { .grid-2, .grid-3 { grid-template-columns: 1fr; } }

UT06 · Entornos de desarrollo

UML y diagramas de clases

Modelo visualmente la estructura de un sistema antes de programarlo. UML te ayuda a organizar ideas, detectar relaciones y diseñar mejor tus aplicaciones. [page:1]

Índice


1. Introducción a UML

UML (Unified Modeling Language) es un lenguaje de modelado visual muy utilizado en el desarrollo de software. Permite representar datos, procesos y relaciones antes de empezar a programar. [page:1]

UML se utiliza para:

  • Aclarar requisitos y limitaciones. [page:1]
  • Acelerar la implementación. [page:1]
  • Guiar la realización de pruebas. [page:1]
  • Reducir errores durante el desarrollo. [page:1]

Idea clave: un buen modelo UML ahorra tiempo después, porque ayuda a detectar problemas antes de escribir código. [page:1]

Trabajo con diagramas y diseño de software

Imagen de contexto: el modelado visual ayuda a pensar el sistema de forma estructurada antes de codificar.


2. Diagramas estructurales

Los diagramas UML se agrupan en varias categorías. En esta unidad nos centramos en los diagramas estructurales, que muestran la organización estática del sistema. [page:1]

Qué representan

  • Clases.
  • Objetos.
  • Estructuras del sistema.
  • Relaciones entre elementos. [page:1]

Para qué sirven

  • Diseñar la arquitectura del software.
  • Entender el dominio del problema.
  • Preparar mejor la implementación. [page:1]

Atención: no confundir los diagramas estructurales con los diagramas de comportamiento, que describen cómo actúa el sistema. [page:1]


3. Diagrama de clases

El diagrama de clases es uno de los diagramas estructurales más importantes de UML. Representa las clases del sistema, sus atributos, sus métodos y las relaciones entre ellas. [page:1]

Función principal: especificar la estructura de datos del sistema y servir como base de la programación orientada a objetos. [page:1]

También puede utilizarse fuera del ámbito puramente técnico, por ejemplo en análisis de negocio, para modelar activos y procesos asociados. [page:1]

Pizarra con esquemas y planificación técnica

Lectura recomendada: primero identifica las clases principales, después los atributos, después los métodos y por último las relaciones.


4. Elementos de una clase

Una clase en UML se representa como una caja dividida en tres secciones. [page:1]

Nombre

Es el único elemento obligatorio. Va en la parte superior. [page:1]

Atributos

Representan las variables o datos de la clase. [page:1]

Métodos

Representan las funciones u operaciones de la clase. [page:1]

Los compartimentos de atributos y métodos son opcionales. En diagramas más abstractos se puede mostrar solo la relación entre clasificadores. [page:1]

Ejemplo de clase

-------------------------
CuentaBancaria
-------------------------
saldo : double
titular : String
-------------------------
ingresar(cantidad) : void
retirar(cantidad) : void

Consejo didáctico: en clase de DAW, acostúmbrate a leer el diagrama como si fuera un contrato de diseño entre el análisis y el código.


5. Visibilidad

El símbolo delante de un atributo o método indica su visibilidad. [page:1]

Símbolo Significado Uso
+ public Acceso desde cualquier parte. [page:1]
# protected Acceso desde la clase y sus herederas. [page:1]
- private Acceso solo desde la propia clase. [page:1]
/ derived Valor derivado de otros atributos. [page:1]
~ package Acceso dentro del paquete. [page:1]

Ejemplo

+ nombre : String
- saldo : double
# calcularInteres() : double

Importante: la visibilidad ayuda a expresar encapsulación, uno de los principios básicos de la programación orientada a objetos.


6. Herencia

La herencia aparece cuando una clase hija comparte atributos y métodos con su clase padre, pero añade comportamiento propio. Es una característica esencial de la orientación a objetos. [page:1]

En UML, la herencia se representa con una flecha sin relleno que apunta desde la clase hija hacia la clase padre. [page:1]

Ejemplo conceptual

Vehiculo
   ▲
   │
Coche

Nota: las clases abstractas pueden escribirse en cursiva para indicar que no deben instanciarse directamente. [page:1]


7. Relaciones entre clases

Cuando existe un vínculo entre clases, UML permite representarlo de varias maneras. [page:1]

Tipos habituales

  • Asociación: relación básica entre dos clases.
  • Asociación reflexiva: una clase se relaciona consigo misma. [page:1]
  • Clase de asociación: la relación tiene información adicional. [page:1]
  • Paquete: agrupa elementos relacionados para organizar el modelo. [page:1]

Ejemplo de asociación

Pedido se relaciona con Cliente porque un cliente realiza pedidos.

Ejemplo de herencia

Empleado puede ser la clase padre de Profesor o Técnico, si comparten atributos comunes.

Pista: si dos clases colaboran en una aplicación, probablemente exista una asociación que conviene reflejar en el diagrama.


8. Resumen visual

Lo esencial

  • UML es un lenguaje de modelado visual. [page:1]
  • El diagrama de clases representa la estructura del sistema. [page:1]
  • Una clase se organiza en nombre, atributos y métodos. [page:1]

Relaciones importantes

  • La visibilidad se expresa con símbolos. [page:1]
  • La herencia se representa con flecha vacía. [page:1]
  • Las asociaciones muestran vínculos entre clases. [page:1]