modelamientodiagramaclases-130611231123-phpapp02
-
Upload
milker-porras -
Category
Documents
-
view
213 -
download
0
description
Transcript of modelamientodiagramaclases-130611231123-phpapp02
Diagrama de clases
UMLClara Patricia Avella Ibáñez
Tunja – Boyacá – Colombia Docente universitaria
Por qué usar un diagramade clases?
Es una de las primeras y más usadas herramientas de generación automática de código.
Hasido
el diagrama
más importanteentodos los métodos orientados a objetos,
porque constituye la guía para convertir eldiseño lógicodel código.
sistemaen
lenguajede
Clases
NombreDeLaClase
Atributos
Operaciones (métodos)
Utilizar singular
Accesibilidad nombreDelAtributo :tipoDeDato
Accesibilidad- 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 clasesderivadas de esta clase, cuando hay herencia.
Clases
NombreDeLaClase
Atributos
Operaciones (métodos)
Accesibilidad- 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
Accesibilidad nombreDelMétodo(parámetro1: tipoDeDato, parámetro2: tipoDeDato, parámetroN: tipoDeDato) : tipoDeDatoDeRetornoDelMétodo
esta clase, cuando hay herencia.
Clases
Ejemplo
Empleado
-id: int-nombre: String-apellido: String-salario: double
+calcularPagoMensual(diasTrab:int):double
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 las clases de la lógica del negocio, paquete con las clases de la Interfaz Gráfica de usuario, paquete con las clases que manejan persistencia de datos.
Paquete YPaquete X
Relaciones
Clase A Clase B Clase A
Clase A
Las clases pueden conectarse con otras clases de diferentes formas, estas conexiones se llaman relaciones.
Clase A
Clase A Clase B
Clase B
Clase B Clase B
Relaciones
ClaseA
Indicainvoca
que una claseuno o
variosque
se
métodos encuentran con la relaciona.
en la
clase cual
se
ClaseB
Uso
La clase A usa a la clase B
La clase A invocaunométodos de la clase B
ovarios
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 Ausa (invoca) el método1clase B
dela
Relaciones
Herencia
Relación
La Clase B (subclase o clase derivada) hereda de la Clase A (superclase o clase general)
Los objetos de la Clase B toman los atributos y métodos de la Clase A como si fueran propios
Clase A
Clase B
Herencia
Herencia Simple
Una clase hereda sólo de una clase
Relaciones Clase A
Clase B Clase C
Clase A
Clase B
Ejemplon
Herenc
RelacionesHerencia
Profesor g
#nombre:String#apellido:String#docIdentidad:Stri
ia simple
ProfesorTC
-diasTrabajados:int-salarioMensual:double
ProfesorCatedra
-horasTrabajadas:int-valorHora:double
RelacionesAgregación
Se utiliza parauna clasecontiene
expresarque muchos
El * indica lade es
objetos de otra clase
En este caso se expresa que la clase A contiene muchos
objetos de la clase B
multiplicidadlarelación,decir, objetos clase
cuántos de
la B
son
conocidos por la clase A
EjemplosMultiplicidad:
de
11, 2 uno o dos5 cinco0..* entre cero y muchos* entre cero y muchos 1..* entre 1 y muchos 5..10 entre cinco y diez
uno* Clase BClase A
Relaciones
Agregación
Catalogo
Un catálogo contiene muchos libros
Clase contenedora
* Libro
-isbn:string-titulo: string
Relaciones
- nrc: int- nombre: string
Estudiante -id: int-nombre: string-apellido:s tring
5..30
Agregación
Ejemplo Curso
Un curso contiene entre 5 y
30 estudiantes
RelacionesComposición
Es una relación de agregación fuertemente ligada, es decir que por lo menos debe existir un objeto de la clase contenida en la clase contenedora para que exista la relación.
Universidad - nit: string- nombre: string
Carrera -id: int-nombre: string1..*
En el ejemplo: Una menos Carrer
a
Universidad porlo debe tener
una para existir
Su paso a código fuente se maneja de la misma forma que
la relación de agregación.
Relaciones
Asociación
Cuando los objetos de una clase tienen alguna referencia con objetos de otra clase se utiliza una relación de asociación. Se representa por una línea continua.
Clase A Clase B conoce > 1
1 < pertenece a
Cada objeto de la Clase A conoce una referencia de la clase B, pero la clase B no conoce a la clase A.
1conoce
Cada objeto de la Clase A conoce una referencia de la clase B y cada objeto de la clase B pertenece a una referencia de la clase A.
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
Clase A Clase B
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
Ejemplo
orienta
Relaciones
Ciudad - codigo: int- nombre: string
Estudiante Nacimiento
-id: int-nombre: string-apellido:s tring
1
Un estudiante tiene una ciudad de nacimiento y
una ciudad de residencia
Asociación
ciudad de
ciudad de 1 Residencia
Ejemplo
Referencias bibliográficas
• Knoernschild, Kirk. Java Design Objects, UML and process.Addison Wesley, 2001. ISBN 0-201-75044-9
• Roques,Pascal.
UMLin
practice.
The art ofmodeling examples
software systems demostrated throughworkedand solutions. Jhon Wiley & Sons, Ltd. Editorial, 2004.
• http://www.dcc.uchile.cl/~psalinas/uml/modelo.html