Sunteți pe pagina 1din 27

Ing.

Mximo Tandazo

Diagrama de Clases
Modela los conceptos del dominio de la aplicacin. Permite visualizar las relaciones entre las clases que involucran el sistema Un diagrama de clase est compuesto por los siguientes elementos:
Clases: atributos, operaciones y visibilidad. Relaciones: Herencia, Composicin, Agregacin, Asociacin y Uso. Responsabilidades

Diagrama de Clases: Elementos Clase


Es la unidad bsica que encapsula toda la informacin de un Tipo de Objeto (un objeto es una instancia de una clase).

Diagrama de Clases: Elementos Atributo


Los atributos describen a una clase. Pueden ser Pblicos, Privados o Protegidos. public (+, ): Indica que el atributo ser visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

private (-, ): Indica que el atributo slo ser accesible desde dentro de la clase (slo sus mtodos lo pueden acceder).
protected (#, ): Indica que el atributo no ser accesible desde fuera de la clase, pero si podr ser accesado por mtodos de la clase adems de las subclases que se deriven (herencia)

Diagrama de Clases: Elementos Operaciones (mtodos)


Las operaciones o mtodos de una clase describen la forma en la cual sta interacta con su entorno. Pueden ser Pblicas, Privadas o Protegidas.

private (-, ): Indica que el mtodo slo ser accesible desde dentro de la clase (slo otros mtodos de la misma clase lo pueden acceder).

protected (#, ): Indica que el atributo no ser accesible public (+, ): Indica que el desde fuera de la clase, pero si mtodo ser visible tanto dentro podr ser accesado por como fuera de la clase, es decir, mtodos de la clase adems de es accesible desde todos lados. las subclases que se deriven (herencia)

Clase y Visibilidad
Alumno -Cedula: String -Nombre: String -Apellidos: String -Domicilio: String -Fecha_nac: date +getNombre(): String +setNombre(nombre: String) +alta() +listarExpediente(cedula: String) +matricular(cedula: String, curso: asignatura)

Relaciones entre clases: Asociacin


Relacin estructural entre las Tiene multiplicidad, que especifica por cada clase el clases. nmero de objetos de la clase opuesta que se relacionan En general es simtrica con un solo objeto de dicha clase a travs de la Tiene un nombre, que la asociacin: describe (verbo, con direccin de lectura) 0.. 1 : cero o uno Puede tener un rol que 1 describe el papel especfico 0.. * que una clase juega en una 1.. * asociacin. *

Asociacin

Grado de asociacin
Binarias

Ternarias

Grado mayor

Asociaciones Reflexivas

Multiplicidad - Cardinalidad
Restringe una asociacin al nmero de objetos que puede relacionarse Uno a Uno

Uno a Muchos

Muchos a Muchos

Multiplicidad - otros

Rol en relaciones

Relaciones entre Clases: Generalizacin


Trabajador

{ disjunta, completa }

Directivo

Administrativo

Obrero

Ejemplo asociacin
marido casado-con mujer
0..1 0..1

Persona nombre s.s.

emplea-a

Compaa trabaja-para nombre direccin *

jefe Administra

0..1

empleado

Asociacin Culificada
Aerolnea
nro_billete

0..1

Viajero

Tablero Ajedrez

fila columna

Cuadro

Reduce la multiplicidad del rol opuesto al considerar el valor del cualificador

Relaciones entre Clases Agregacin y Composicin


Composicin Relacin esttica, en donde el tiempo de vida del objeto incluido est condicionado por el tiempo de vida del que lo incluye.

Agregacin Relacin dinmica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye.
El objeto base utiliza al incluido para su funcionamiento, como un parmetro pasado por referencia.

El Objeto base se contruye a partir del objeto incluido, es decir, es "parte/todo, como un parmetro pasado por valor.

Relaciones entre Clases: Agregacin y Composicin

Agregacin (Por referencia)

Composicin (Por valor)

Diagrama de Clases: Elementos Responsabilidades


La distribucin de responsabilidades en un sistema, se realiza identificando un conjunto de clases que colaboran entre s para llevar a cabo algn comportamiento. Luego hay que identificar el conjunto de responsabilidades para cada clase

Ejemplos
Window scrollbar[2] : Slider title : Header body : Panel

Window
1 1 1

scrollbar Slider

title 1 Header

body

Panel

... Ejemplos
Person

*
1

Member-of { subset } Chair-of

* Committee *
Represents an incorporated entity.

worker

Person

employee

employer
0..1

Company

*
0..1

boss {Person.employer = Person.boss.employer}

Ejemplo Diagrama de Clases


Motor 1..4 Piloto 1..2 Vendedor de billetes 1

1 Avin 1 n

n Vuelo n 1 n

n Reserva

{ disjunta, completa }

1 Avin militar Avin comercial Lnea area

{ disjunta, completa }

Avin de carga

Avin de pasajeros

Ejemplo Diagrama de Clases

Ejemplo

Ejercicio - Empresa
Representar mediante un diagrama de clases las siguientes especificacin:
Una aplicacin necesita almacenar informacin sobre empresas, sus empleados y sus clientes. Ambos se caracterizan por su nombre y edad. Los empleados tienen un sueldo bruto, los empleados que son directivos tienen una categora, as como un conjunto de empleados subordinados. De los clientes adems se necesita conocer su telfono de contacto. La aplicacin necesita mostrar los datos de empleados y clientes.

Ejercicio - Biblioteca
Realizar un diagrama de clases y aadir los mtodos necesarios para realizar el prstamo y devolucin de los libros.
Una biblioteca tiene copias de libros. Estos ltimos se caracterizan por su nombre, tipo (novela, teatro, poesa, ensayo), editorial, ao y autor. Los autores se caracterizan por su nombre, nacionalidad y fecha de nacimiento. Cada copia tiene un identificador y puede estar en la biblioteca, prestada, con retraso o en reparacin. Los lectores pueden tener un mximo de 3 libros en prstamo. Cada libro se presta un mximo de 30 das, por cada da de retraso, se impone una multa de dos das sin posibilidad de coger un nuevo libro.

Ejercicio - Biblioteca
Persona +cedula: String +nombres: String +apellidos: String +edad: int +mostrar() Cliente +telefono: String Empleados +sueldoBruto: Double +mostrar() +mostrar()

+0 0..*

0..*

Directivo +categoria: String +mostrar()

Empresa +nombre: String

S-ar putea să vă placă și