UT06 - UML Y DIAGRAMAS DE CLASES
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]
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]
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]