7 Curso de POO en java - diagrama de clases

23
Diagrama de clases UML Clara Patricia Avella Ibáñez Tunja – Boyacá – Colombia Docente universitaria [email protected]

description

7_ Modelamiento - diagrama de clases

Transcript of 7 Curso de POO en java - diagrama de clases

Diagrama de clases UML

Clara Patricia Avella Ibáñez

Tunja – Boyacá – ColombiaDocente universitaria

[email protected]

Por qué usar un diagrama de clases?

Es una de las primeras y más usadasherramientas de generación automática decódigo.

Ha sido el diagrama más importante entodos los métodos orientados a objetos,porque constituye la guía para convertir eldiseño lógico del sistema en lenguaje decódigo.

Componentes del diagrama

Clases

Relaciones

Comentarios

Paquetes

Clases

NombreDeLaClase

Atributos

Operaciones (métodos) - privado: el atributo sólo es visible por los

métodos de la clase

+ público: el atributo es visible dentro y fuera de la clase

# protegido: el atributo es visible por los métodos de la clase y por métodos de clases derivadas de esta clase, cuando hay herencia.

Accesibilidad nombreDelAtributo :tipoDeDato

Accesibilidad

Utilizar singular

Clases

NombreDeLaClase

Atributos

Operaciones (métodos) - privado: el método sólo es visible por los otros

métodos de la clase.

+ público: el método es visible dentro y fuera de la clase

# protegido: el método es visible por los métodos de la clase y por métodos de clases derivadas de esta clase, cuando hay herencia.

Accesibilidad

Accesibilidad nombreDelMétodo(parámetro1: tipoDeDato, parámetro2: tipoDeDato, parámetroN: tipoDeDato) :tipoDeDatoDeRetornoDelMétodo

Clases

Empleado

-id: int-nombre: String-apellido: String-salario: double

+calcularPagoMensual(diasTrab:int):double

Ejemplo

Paquetes

Agrupan lógicamente las clases que tienen alguna relación entre sí.

Se pueden agrupar por clases que conforman módulos y submódulosde la aplicación.

Se pueden agrupar por tipo de funcionalidad. Ej. Paquete con lasclases de la lógica del negocio, paquete con las clases de la InterfazGráfica de usuario, paquete con las clases que manejan persistenciade datos.

Paquete X Paquete Y

Paquetes

LogicaNegocio

Ejemplo

Empleado Fecha

Relaciones

Clase A

Las clases pueden conectarse con otras clases de diferentes formas, estas conexiones se llaman relaciones.

Clase B

Clase A Clase B Clase A Clase B

Clase A Clase B Clase B

Clase A

Relaciones

ClaseA

Indica que una claseinvoca uno o variosmétodos que seencuentran en la clasecon la cual serelaciona.

ClaseB

Uso

La clase A usa a la clase B

La clase A invoca uno o variosmétodos de la clase B

Relaciones

public class ClaseA{

public static void main(String args[]){

ClaseB objeto1 = new ClaseB( );objeto1.metodo1( );

}}

ClaseA ClaseB

Uso Ejemplo en código java:

+main(args): void

+metodo1():void

public class ClaseB{// atributos

public void metodo1( ){

// acá van las instrucciones del método}

}

La clase A usa(invoca) elmétodo1 de laclase B

Relaciones

Herencia

Clase A

Clase B

Relación Los objetos de laClase B toman losatributos y métodosde la Clase A comosi fueran propios

La Clase B (subclase oclase derivada)hereda de la Clase A(superclase o clasegeneral)

Herencia Simple

Clase A

Clase B Clase C

Clase A

Clase B

Una clase hereda sólo de una clase

RelacionesHerencia

Clase A Clase B

Clase C

Una clase hereda de más de una

clase

Herencia Múltiple

Relaciones

Herencia

Ejemplo

Profesor

#nombre:String#apellido:String#docIdentidad:String

ProfesorTC

-diasTrabajados:int-salarioMensual:double

ProfesorCatedra

-horasTrabajadas:int-valorHora:double

Herencia simple

RelacionesHerencia

RelacionesAgregación

Clase A Clase B

*

Se utiliza para expresar queuna clase contiene muchosobjetos de otra clase

En este caso se expresa que la clase A contiene muchos

objetos de la clase B

El * indica lamultiplicidad dela relación, esdecir, cuántosobjetos de laclase B sonconocidos por laclase A

Ejemplos deMultiplicidad:

1 uno1, 2 uno o dos5 cinco0..* entre cero y muchos* entre cero y muchos1..* entre 1 y muchos5..10 entre cinco y diez

Relaciones

Agregación

Catalogo Libro-isbn:string-titulo: string

*

Un catálogo contiene muchos libros

Clasecontenedora

Relaciones

Agregación

Curso- nrc: int- nombre: string

Estudiante-id: int-nombre: string-apellido:s tring

5..30

Un curso contiene entre 5 y 30 estudiantes

Ejemplo

RelacionesComposición

Universidad- nit: string- nombre: string

Carrera-id: int-nombre: string

1..*

Es una relación deagregación fuertementeligada, es decir que por lomenos debe existir unobjeto de la clase contenidaen la clase contenedorapara que exista la relación.

En el ejemplo: UnaUniversidad por lo menosdebe tener una Carrerapara existir

Su paso a código fuente se maneja de la misma forma que

la relación de agregación.

RelacionesAsociación

Cuando los objetos de una clase tienen alguna referencia con objetos deotra clase se utiliza una relación de asociación. Se representa por unalínea continua.

Clase A Clase BClase A Clase B

Cada objeto de la Clase A conoceuna referencia de la clase B, perola clase B no conoce a la clase A.

1

Cada objeto de la Clase A conoce unareferencia de la clase B y cada objetode la clase B pertenece a unareferencia de la clase A.

conoce > 1

La relación de Asociación debe tener:

Dirección: indica qué clase tiene la referencia a qué clase -> <-

Si no hay flecha indica que las dos clases se conocen entre sí.

Multiplicidad (el mismo concepto manejado en agregación)

Nombre: sirve para identificar la relación en el diagrama

conoce 1 < pertenece a

Relaciones

Profesor- codigo: int- nombre: String- apellido: String

Curso-id: int-nombre: String

1..3

Un profesor orienta entre 1 y 3 cursos

Asociación

orienta

Ejemplo

Relaciones

Ciudad- codigo: int- nombre: string

Estudiante-id: int-nombre: string-apellido:s tring

1

Un estudiante tiene una ciudad de nacimiento y

una ciudad de residencia

Asociación

ciudad de Nacimiento

1ciudad de Residencia

Ejemplo

Referencias bibliográficas

• Knoernschild, Kirk. Java Design Objects, UML and process.Addison Wesley, 2001. ISBN 0-201-75044-9

• Roques, Pascal. UML in practice. The art of modelingsoftware systems demostrated through worked examplesand solutions. Jhon Wiley & Sons, Ltd. Editorial, 2004.

• http://www.dcc.uchile.cl/~psalinas/uml/modelo.html