modelamientodiagramaclases-130611231123-phpapp02

23
Diagrama de clases UML Clara Patricia Avella Ibáñez Tunja – Boyacá – Colombia Docente universitaria cpa v ella@gmail. com

description

UML

Transcript of modelamientodiagramaclases-130611231123-phpapp02

Diagrama de clases

UMLClara Patricia Avella Ibáñez

Tunja – Boyacá – Colombia Docente universitaria

[email protected]

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

Componentes del diagrama

ClasesRelaciones

Comentarios

Paquetes

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

Paquetes

Ejemplo

LogicaNegocio

Empleado Fecha

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

Una clase hereda de más de una

clase

Herencia Múltiple

Relaciones

Herencia

Clase A Clase B

Clase C

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