Tm04 modelo de clases

49
Técnicas de Técnicas de modelamiento modelamiento Modelo de Clases Modelo de Clases Prof. César Luza Montero Prof. César Luza Montero

Transcript of Tm04 modelo de clases

Page 1: Tm04 modelo de clases

Técnicas de Técnicas de modelamientomodelamiento

Modelo de ClasesModelo de Clases

Prof. César Luza MonteroProf. César Luza Montero

Page 2: Tm04 modelo de clases

Espacio de debateEspacio de debate

¿Es importante para el usuario ¿Es importante para el usuario final si el sistema fue programado final si el sistema fue programado orientado a objetos o orientado a objetos o estructurado?estructurado?

Entonces. ¿A quién interesa el Entonces. ¿A quién interesa el paradigma de programación paradigma de programación utilizado para su desarrollo?utilizado para su desarrollo?

Page 3: Tm04 modelo de clases

Paradigma estructuradoParadigma estructurado

El sistema se modela como un El sistema se modela como un conjunto de procedimientos que conjunto de procedimientos que intercambian información. intercambian información.

Datos y lógica por separadoDatos y lógica por separado

Diagrama de Flujos de Datos

Page 4: Tm04 modelo de clases

Paradigma Orientado a Paradigma Orientado a ObjetosObjetos

El sistema se modela como un El sistema se modela como un conjunto de objetos que conjunto de objetos que intercambian mensajes.intercambian mensajes.

Datos y lógica encapsulados en Datos y lógica encapsulados en clasesclaseso1 o4 o3

M1.4M1.3

Page 5: Tm04 modelo de clases

Conceptos O-OConceptos O-O

ObjetosObjetos ClasesClases Atributos y OperacionesAtributos y Operaciones Asociaciones y enlacesAsociaciones y enlaces Generalización y AgregaciónGeneralización y Agregación

Page 6: Tm04 modelo de clases

• Informalmente, un objeto representa una Informalmente, un objeto representa una entidadentidad física, conceptual o programafísica, conceptual o programa

Camión Proceso Químico

Lista Enlazada

¿Qué es un Objeto?¿Qué es un Objeto?

Entidad físicaEntidad física Entidad conceptualEntidad conceptual

Entidad Programa

Page 7: Tm04 modelo de clases

ObjetoObjeto

Persona

JuanGarcíaRodríguezMasculino15

comer()beber()dormir()

Persona

MaríaReyesHernándezFemenino45

comer()beber()dormir()

Vehículo

FordMustangBlancoSX-54852545

mover()abrir()girar()detener()

Vehículo

ChevroletCorsaAzul425-AB-8455

mover()abrir()girar()detener()

Page 8: Tm04 modelo de clases

Una definición formal Una definición formal

• Un objeto es un concepto, una abstracción o una cosa Un objeto es un concepto, una abstracción o una cosa con límites bien definidas y significado para una con límites bien definidas y significado para una aplicación aplicación

• Un objeto es algo que tiene:Un objeto es algo que tiene:– EstadoEstado– ComportamientoComportamiento– IdentidadIdentidad

Page 9: Tm04 modelo de clases

Nombre: Joyce ClarkNº Empleado: 567138Fecha de Contr.: 21 de marzo 1987Estado: Adjunto

Profesor Clark

a + b = 10

Un Objeto tiene EstadoUn Objeto tiene Estado

• El estado de un objeto es una de las posibles condiciones El estado de un objeto es una de las posibles condiciones en que el objeto puede existiren que el objeto puede existir

• El estado normalmente cambia en el transcurso del tiempoEl estado normalmente cambia en el transcurso del tiempo

• El estado de un objeto es implementado por un conjunto El estado de un objeto es implementado por un conjunto de propiedades (llamadas atributos), con los valores de las de propiedades (llamadas atributos), con los valores de las propiedades, además de las conexiones que deben tener propiedades, además de las conexiones que deben tener con otros objetoscon otros objetos

Page 10: Tm04 modelo de clases

EstadoEstado

Persona

JuanGarcíaRodríguezMasculino15

comer()beber()dormir()

Persona

JuanGarcíaRodríguezMasculino32

comer()beber()dormir()

Vehículo

FordMustangBlancoSX-54852545

mover()abrir()girar()detener()

Vehículo

FordMustangRojoSX-54852545

mover()abrir()girar()detener()

Page 11: Tm04 modelo de clases

Un Objeto tiene Un Objeto tiene ComportamientoComportamiento

• El comportamiento de un objeto El comportamiento de un objeto determina cómo éste actúa y reacciona determina cómo éste actúa y reacciona frente a las peticiones de otros objetosfrente a las peticiones de otros objetos

• El comportamiento de un objeto es El comportamiento de un objeto es modelado por un conjunto de mensajes modelado por un conjunto de mensajes aa los que puede responder (las operaciones los que puede responder (las operaciones que el objeto puede realizar)que el objeto puede realizar)

Page 12: Tm04 modelo de clases

Paso de mensajesPaso de mensajes

:MandoADistancia :Televisor

Conectar()

Canal(4)

Invocación de métodosInvocación de métodos Medio de colaboración Medio de colaboración

entre objetosentre objetos

Page 13: Tm04 modelo de clases

Profesor “J Perez”enseña Algebra

Profesor “J Perez”enseña Algebra

Profesor “M Molina”enseña Matemátcias

Un Objeto tiene IdentidadUn Objeto tiene Identidad

• Cada objeto tiene una identidad única, Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro incluso si su estado es idéntico al de otro objetoobjeto

Page 14: Tm04 modelo de clases

¿Qué son las Clases?¿Qué son las Clases?

• Hay muchos objetos identificados para Hay muchos objetos identificados para cada dominiocada dominio

• Una clase es una descripción de un grupo Una clase es una descripción de un grupo de objetos con propiedades en común de objetos con propiedades en común (atributos), comportamiento similar (atributos), comportamiento similar (operaciones), la misma manera de (operaciones), la misma manera de relacionarse entre objetos (asociaciones y relacionarse entre objetos (asociaciones y agregados) y una semántica en comúnagregados) y una semántica en común– Un objeto es una instancia de una claseUn objeto es una instancia de una clase

Page 15: Tm04 modelo de clases

Clases Clases

Representan un conjunto de objetos Representan un conjunto de objetos con características comunes.con características comunes.

LIBROSCOMPUTADORAS

Page 16: Tm04 modelo de clases

ClaseClase

Atributos

Operaciones

NombrePersonanombreapellido maternoapellido paternosexoedad

comer()beber()dormir()

Page 17: Tm04 modelo de clases

ClaseClase

Vehículomarcamodelocolornúmero de serie

mover()abrir()girar()detener()

Atributos

Operaciones

Nombre

Page 18: Tm04 modelo de clases

Clases y ObjetosClases y Objetos

¿Cuántas clases ve?¿Cuántas clases ve?

Page 19: Tm04 modelo de clases

Clases y ObjetosClases y Objetos

Clase : Clase : • Lavadora,Lavadora,• Automóvil,Automóvil,• Persona,Persona,• Factura,Factura,• Pedido.Pedido.

Objeto:Objeto:• Mi lavadora,Mi lavadora,• Auto de placa Auto de placa

SGC437, SGC437, • Luis Quispe Garcia,Luis Quispe Garcia,• Factura Nro. Factura Nro.

1234512345.,

• Pedido Nro. 54321Pedido Nro. 54321

Page 20: Tm04 modelo de clases

AtributosAtributos

Un atributo es una propiedad de una clase y describe un rango Un atributo es una propiedad de una clase y describe un rango de valores que la propiedad podrá contener en los objetos de la de valores que la propiedad podrá contener en los objetos de la clase.clase.

Atributos de la Atributos de la Clase Clase LavadoraLavadora::

Marca, Marca,

Modelo, Modelo, Número de serie, Número de serie, CapacidadCapacidad.

Valores en Objeto: Valores en Objeto: Mi lavadoraMi lavadora::

laundatorium, laundatorium,

washmeister, washmeister,

GL57774 , GL57774 ,

7 kg.7 kg.

Page 21: Tm04 modelo de clases

OperacionesOperaciones

Una operación es algo que la clase puede Una operación es algo que la clase puede realizar o que otra clase puede hacer a una realizar o que otra clase puede hacer a una clase.clase.

Es una función o transformación que se Es una función o transformación que se puede aplicar o que puede ser aplicada por puede aplicar o que puede ser aplicada por los objetos de una clase.los objetos de una clase.

Ejemplo : LavadoraEjemplo : Lavadora• Agregar ropa, Agregar ropa, • Agregar detergente, Agregar detergente, • Secar ropa.Secar ropa.

Page 22: Tm04 modelo de clases

TareaTarea

Proporcione Ud. 5 ejemplos deProporcione Ud. 5 ejemplos de• Clase, Clase, • objetos, objetos, • atributos y atributos y • operacionesoperaciones

Page 23: Tm04 modelo de clases

Clase y objeto ConceptualClase y objeto Conceptual

Lavadora

marcamodelonumeroSeriecapacidad

agregarRopa ()agregarDeter()secarRopa()

miLavadora: Lavadora

marca = “Laundatorium”modelo = “Washmeister”numeroSerie = “GLS7774”capacidad = 16

Page 24: Tm04 modelo de clases

Clase y objeto en UMLClase y objeto en UML

CuentanumeroCuentasaldofechaAperturasaldoPromedioabrir()consignar()suspender()sobregirar()

miCuenta : Cuenta

Nombre de la Clase

Atributos

Operaciones

Page 25: Tm04 modelo de clases

Enlaces y AsociacionesEnlaces y Asociaciones

Las entidades o cosas del mundo real Las entidades o cosas del mundo real se relacionan con otras entidadesse relacionan con otras entidades. .

A las relaciones entre objetos se les A las relaciones entre objetos se les llama llama enlacesenlaces..

A las relaciones entre clases se les A las relaciones entre clases se les llama llama asociacionesasociaciones..

Ej. “ Jugador participa en Equipo”Ej. “ Jugador participa en Equipo” Ej. “ Claudio Pizarro participa en Bayern Ej. “ Claudio Pizarro participa en Bayern

Munich”Munich”

Page 26: Tm04 modelo de clases

AsociacionesAsociaciones

Jugador EquipoParticipa en

Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede

tener asociado un cliente.

Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede

tener asociado un cliente.

Page 27: Tm04 modelo de clases

MultiplicidadMultiplicidad

Jugador EquipoParticipa en

Cantidad de objetos de una clase que se relaciona con un objeto de la clase asociada.

11 1

Page 28: Tm04 modelo de clases

... Multiplicidad... Multiplicidad

Maestro Estudiante

EsposaEsposo Uno a uno1 1

1 * Uno a muchos

Casado con

Enseña

Cajero ClienteAtiende1 1..* Uno a uno o más

Casa ChimeneaTiene1 0,1 Uno a ninguno o uno

Caja HuevosContiene1 12 Uno a 12

Page 29: Tm04 modelo de clases

Clase asociación

Empresa Persona

Empleo

descripciónsalariofechaContrato

* 1..*

empleador empleado

Clases que representan propiedades y operacionespropios de la relación

Page 30: Tm04 modelo de clases

EnlacesEnlaces

J. Jayo Jugador Alianza Lima : EquipoParticipa en

Un enlace es una instancia de una asociación

Page 31: Tm04 modelo de clases

Elementos de una Elementos de una asociaciónasociación

Compañia Personaempleador_de emplea empleado

0..1 *

multiplicidad

Nombreasociación

roles

Password

1

*

owner

dirección denavegación

Page 32: Tm04 modelo de clases

Generalización/Generalización/EspecializaciónEspecialización

Una clase (subclase) es un subtipo Una clase (subclase) es un subtipo de otra clase (superclase).de otra clase (superclase).

Indica que una subclase hereda los Indica que una subclase hereda los métodos y atributos especificados métodos y atributos especificados por una Superclase.por una Superclase.

Page 33: Tm04 modelo de clases

GeneralizaciónGeneralización

Persona

nombreapellido maternoapellido paternosexoedad

comer()beber()dormir()

Estudiante

gradocolegio

matricular()estudiar()

Trabajador

profesióncentro de trabajosalario

trabajar()cobrar()

Superclase

Subclases

Page 34: Tm04 modelo de clases

Generalización/Generalización/EspecializaciónEspecialización

¿Qué significa el siguiente diagrama?

Page 35: Tm04 modelo de clases

...Generalización...Generalización

Animal

Anfibio Mamifero Reptil

Caballo

Relación: subclase “es un tipo de” con la superclase

Page 36: Tm04 modelo de clases

Ejemplo de generalización

Persona

Cliente Proveedor

Aumento deabstracciòn

Page 37: Tm04 modelo de clases

Ejemplo de especialización

Cliente

minorista mayorista

Abstraccióndescendente

Page 38: Tm04 modelo de clases

AgregaciónAgregación

Una clase consta de otras clases.Una clase consta de otras clases. Es una relación entre clases componentes Es una relación entre clases componentes

asociada a una clase ensamble completo. asociada a una clase ensamble completo. Ejemplo: Un microcomputadora esta Ejemplo: Un microcomputadora esta

compuesta por :compuesta por :• Un Monitor, Un Monitor, • Caja del Sistema, Caja del Sistema, • Uno o ningun ratón y Uno o ningun ratón y • Un teclado.Un teclado.

Page 39: Tm04 modelo de clases

...Agregación...Agregación

Computadora

Monitor Cases Teclado

CPU

Relación: subclase “es parte de” con la superclase

Mouse1 1 0,11

RAM Ventilador

Page 40: Tm04 modelo de clases

Agregación / composiciónAgregación / composición

PC

Monitor Chasis Mouse Teclado

Pais

Dpto

MunicipioAgregación : la existencia de las partes es independiente de la existencia del todo (débil)Composición : la existencia de las partes depende de la existencia del todo. (fuerte)

Page 41: Tm04 modelo de clases

Ejemplo - diagrama de Ejemplo - diagrama de claseclase

CorrientetopeSobregiro

AhorrosaldoTrimestralinteres

CuentanroCuentasaldofecha apertura

HistoriaMovimientos

1..1 *1..1

+detalles

*

genera

Page 42: Tm04 modelo de clases

Construcción de Diagrama de clasesConstrucción de Diagrama de clases Identificar las clases

Se seleccionan los sustantivos de la descripción del problema como posibles clases candidatas. Se construye una lista.

Se eliminan las clases redundantes, irrelevantes o vagas o bien por ser atributos, operaciones o construcciones de implementación.

Identificar las asociaciones entre clases.

• Se le agrega la multiplicidad correcta. • También se puede representar la relación " es parte de" o agregación.

Identificar atributos.

Organizar y simplificar clases usando herencia.

• La herencia se puede usar para generalizar los aspectos comunes de las clases existentes construyendo una superclase, o para refinar una clase en subclases especializadas.

Verificar que el diagrama responda a los requerimientos.

Iterar y refinar el modelo.

Page 43: Tm04 modelo de clases

Una empresa recién formada se dedica a integrar partes para formar productos, con la intención de vender el valor agregado de la integración. Un relevamiento preliminar describe los datos esenciales de la organización con el fin de realizar un sistema computarizado para disminuir costos y responder con más agilidad. Un texto informal enuncia los datos principales y sus relaciones. Se necesita realizar un Class Diagram de UML para asegurarse de minimizar las ambigüedades, vaguedades y facilitar la comunicación mediante un estándar; éste es su trabajo.

Caso empresa de fabricación

Construcción de Diagrama de clases

Page 44: Tm04 modelo de clases

Un producto tiene un nombre y un precio base. Un producto se forma con muchas partes y cada parte puede formar muchos productos. La definición de cada producto especifica qué cantidad de cada parte forma a un producto dado.Un vendedor tiene un apellido, nombre y un porcentual de comisión. Tanto un cliente como un proveedor tienen los datos de todo agente comercial; éstos son: cuit, razón social, e-mail, teléfono y dirección. Además, un proveedor tiene un plazo de pago y un cliente un porcentual de descuento. Una parte puede ser comprada a muchos proveedores y un proveedor puede proveer muchas partes. Cada compra de una parte tiene una fecha y una cantidad. Una venta se realiza entre cualquier vendedor y cualquier cliente, y éste puede comprar cualquier producto. De una venta se quiere saber su fecha.No se pueden vender productos que estén formados por una única parte, esto es, no se permite vender productos sin elaborar.

Caso empresa de fabricación

Construcción de Diagrama de clases

Page 45: Tm04 modelo de clases

agenteComercial

proveedor

parte

cliente

producto

vendedor

Caso empresa de fabricación

Clases identificadas

Page 46: Tm04 modelo de clases

agenteComercial

proveedor

parte

0..*

0..*

0..*

0..*

Se compra

cliente

producto 1..*1..* 1..*1..* se forma

0..*

0..*

0..*

0..*

se vende

vendedor

Caso empresa de fabricación Asociaciones

Page 47: Tm04 modelo de clases

Caso empresa de fabricación atributos

vendedor

apellidonombreporcComis

agenteComercial

cuitrazSocialemailtelfdirecc

proveedor

plazoPago

parte

numPartedescripción

0..*

0..*

0..*

0..*

Se compra

cliente

porcDesc

producto

nombreprecioBase

1..*1..* 1..*1..* se forma

0..*

0..*

0..*

0..*

se vende

Page 48: Tm04 modelo de clases

Caso empresa de fabricación organizar: clases asociación, herencia

agenteComercial

cuitrazSocialemailtelfdirecc

proveedor

plazoPago

parte

numPartedescripción

0..*

0..*

0..*

0..*

Se compra

cliente

porcDesc

producto

nombreprecioBase

1..*1..* 1..*1..* se forma

0..*

0..*

0..*

0..*

se vende

definición

compra

venta

vendedor

apellidonombreporcComis

0..*

1

0..*

1

participa

Page 49: Tm04 modelo de clases

venta

fecha

agenteComercial

cuitrazSocialemailtelfdirecc

proveedor

plazoPago

parte

numPartedescripción

0..*

0..*

0..*

0..*

Se compra

cliente

porcDesc

producto

nombreprecioBase

1..*1..* 1..*1..* se forma

0..*

0..*

0..*

0..*

se vende

definición

cantidad

compra

fechacantidad

vendedor

apellidonombreporcComis

0..*

1

0..*

1

participa