7 Curso de POO en java - diagrama de clases
-
Upload
clara-patricia-avella-ibanez -
Category
Education
-
view
3.549 -
download
8
description
Transcript of 7 Curso de POO en java - diagrama de clases
Diagrama de clases UML
Clara Patricia Avella Ibáñez
Tunja – Boyacá – ColombiaDocente universitaria
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.
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
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
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