Вы находитесь на странице: 1из 34

U.T.

6: Elaboracin de
diagramas de clases con
UML.
UML: Diagrama de clases
Diagrama de clases
Clases, atributos, mtodos
Relaciones
Asociacin
Herencia
Composicin
Agregacin
Realizacin
Dependencia
Generacin de cdigo a partir de diagramas de
clases
Diagrama de clases: clases
En UML una clase se representa por un rectngulo con
tres divisiones

Nombre de Clase
la clase
Atributos
(se puede omitir)

Mtodos
(se puede omitir)
Diagrama de clases: atributos
En UML los atributos pueden representarse con su
nombre, o indicando tambin el tipo y valor por defecto.
Los tipos bsicos UML son:
Integer, String y Boolean
Es necesario indicar la visibilidad del atributo:

Pblico (public) +
Protegido (protected) #
Privado (private) -
Paquete (package) ~
Diagrama de clases: mtodos
Es la implementacin de un servicio de la clase
En UML los mtodos se representan por su nombre, tipos
de parmetros y tipo de dato devuelto.
Igual que los atributos, la visibilidad del mtodo:

Pblico (public) +
Protegido (protected) #
Privado (private) -
Paquete (package) ~
Diagrama de clases

Netbeans UML ArgoUML


Diagrama de clases: Relaciones
En UML, los vnculos entre objetos se representan
mediante asociaciones.
Las asociaciones tienen un nombre y una cardinalidad
Diagrama de clases: Relaciones
Las multiplicidades destino mayores que 1 se
implementan como un atributo de tipo array o coleccin.

Notacin Cardinalidad/Multiplicidad
0..1 Cero o una vez
1 Una y slo una vez
* De cero a varias veces
1..* De una a varias veces
M..N Entre M y N veces
N N veces
Diagrama de clases: Relaciones
Tipos de relaciones
Asociacin, dependiendo de si una clase conoce la existencia
de la otra o no (navegabilidad) puede ser:
Unidireccional
En java cada una de las clases contendr un objeto o set de objetos
de la otra clase.
Bidireccional
En java slo la clase origen contendr un objeto o set de objetos
de la clase destino.
Unidireccional

Bidireccional
Diagrama de clases: Asociacin
Asociacin
Diagrama de clases: Asociacin
public class Cliente { // 1 cliente tiene muchas facturas
public HashSet<Facturas> facturas = new HashSet<Facturas>();

public Cliente(){}
public HashSet<Facturas> getFacturas(){
return this.facturas;
}

public void setFacturas(HashSet<Facturas> nuevaFactura){


this.facturas = nuevaFactura;
}
}

public class Facturas { // 1 factura pertenece a un slo cliente


public Cliente cliente = null;
public Facturas(){}
public Cliente getCliente(){
return this.cliente;
}
public void setCliente(Cliente nuevoCliente){
this.cliente = nuevoCliente;
}
}
Diagrama de clases: Asociacin
public class Zonas { // No sabe de la existencia del almacn
public Zona(){}
}

public class Almacen { // 1 almacn distribuye en muchas zonas


public HashSet<Zonas> zonas = new HashSet<Zonas>();

public Almacen(){}
public HashSet<Zonas> getZonas(){
return this.zonas;
}

public void setZonas(HashSet<Zonas> nuevaZona){


this.zonas = nuevaZona;
}
}
Diagrama de clases: Asociacin
Asociacin reflexiva
Una clase se asocia consigo misma
Diagrama de clases: Asociacin
Clase ASOCIACIN
Cuando una asociacin entre dos clases posee sus propios atributos,
se crea una nueva clase en el diagrama para dicha asociacin.
Pueden estar dotadas de atributos y mtodos y asociarse, a su vez,
con otras clases.
Diagrama de clases: Relaciones
Tipos de relaciones
Herencia
Abstraccin para compartir similitudes entre clases (atributos y
operaciones)
Se representa mediante una jerarqua donde:
La clase principal guarda las caractersticas comunes

Las subclases heredan y especializan las caractersticas de la


clase principal.
Se representa en UML mediante una flecha que apunta a la
clase principal.
Diagrama de clases: Relaciones
Tipos de relaciones
Herencia

Superclase

Subclases
Diagrama de clases: Relaciones
Tipos de relaciones
Herencia
public class Persona {
private int dni;
private char nombre;
private boolean sexo;
private char fechaNacimiento;

public Persona(){}
}

public class Alumno extends Persona{ public class Empleado extends Persona{
private int numMatricula; private char numSegSocial;
private int curso; private char puestoTrabajo;
private int salario;
public Alumno(){}
} public Empleado(){}

}
Diagrama de clases: Relaciones
Tipos de relaciones
Composicin
Asocia un objeto complejo con los objetos que lo componen.
Existen dos formas de composicin:
Composicin fuerte : Los objetos forman parte slo del objeto
compuesto y no pueden participar en asociaciones con otros
objetos compuestos.

Composicin dbil o agregacin: Los componentes pueden ser


compartidos por varios objetos compuestos
Diagrama de clases: Relaciones
Tipos de relaciones
Composicin

Agregacin
Diagrama de clases: Relaciones
Tipos de relaciones
Composicin

public class Ordenador {


public HashSet<Memoria> memorias = new HashSet<memoria>();
public HashSet<Disco> discos = new HashSet<disco>();
public Teclado teclado = null;
public Placabase placa = null;
public Ordenador() {}
}
Diagrama de clases: Relaciones
Tipos de relaciones
Agregaciones tpicas:

Partes que componen


un objeto de nivel superior

Elementos contenidos en
otro nivel superior

Miembros de una coleccin


o conjunto
Diagrama de clases: Relaciones
Tipos de relaciones
Realizacin
Es la relacin de herencia entre una clase interfaz y la subclase
que implementa dicha interfaz.
Son tambin las relaciones entre casos de uso y las colaboraciones
que los realizan.
Se representan grficamente con lnea discontinua y flecha.
Diagrama de clases: Relaciones
Tipos de relaciones
Realizacin
public interface Animal { public class Calamar implements Animal{
public void comer(); public Calamar(){}
public void comunicarse(); public void comer(){}
public void reproducirse(); public void comunicarse(){}
} public void reproducirse(){}
}
public class Perro implements Animal { public class Gallina implements Animal {
public Perro(){} public Gallina(){}
public void comer(){} public void comer(){}
public void comunicarse(){} public void comunicarse(){}
public void reproducirse(){} public void reproducirse(){}
} }
Diagrama de clases: Relaciones
Tipos de relaciones
Dependencia
Es la relacin que se establece cuando una clase usa a la otra, es
decir, la necesita para su cometido.
Se representan grficamente con lnea discontinua y flecha sin
relleno.
Diagrama de clases con ArgoUML
Ventana inicial

Diseo del diagrama


Explorador

Crticas Detalles y propiedades


Diagrama de clases con ArgoUML
Barra de herramientas
Diagramas

Casos Realizacin Clase


de Uso Clases Secuencia Despliegue Asociacin
Dependencia

Asociacin
Crear Agregacin Herencia Propiedades
paquete Composicin Operaciones
Clase
Crear interfaz
clase
Diagrama de clases con ArgoUML
Clase

Nombre de la
clase Aadir /eliminar
Atributos atributo
Aadir/eliminar
mtodo
Asociacin
Reflexiva
Mtodos
Diagrama de clases con ArgoUML
Propiedades de los atributos
Diagrama de clases con ArgoUML
Parmetros en los mtodos

Aadir el tipo devuelto

Aadir un parmetro
Diagrama de clases con ArgoUML
Asociaciones

Nombre asociacin
Multiplicidad

Roles
Diagrama de clases con ArgoUML
Propiedades de la asociacin

Direccin de la
Multiplicidad Roles asociacin
Diagrama de clases con ArgoUML
Crticas y
sugerencias
Generacin de cdigo fuente
ArgoUML
Mostrar
el cdigo
Generacin de cdigo fuente
ArgoUML
Generar
fichero fuente

Вам также может понравиться