Tm04 modelo de clases
-
Upload
julio-pari -
Category
Documents
-
view
1.453 -
download
1
Transcript of 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
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?
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
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
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
• 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
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()
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
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
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()
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)
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
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
¿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
Clases Clases
Representan un conjunto de objetos Representan un conjunto de objetos con características comunes.con características comunes.
LIBROSCOMPUTADORAS
ClaseClase
Atributos
Operaciones
NombrePersonanombreapellido maternoapellido paternosexoedad
comer()beber()dormir()
ClaseClase
Vehículomarcamodelocolornúmero de serie
mover()abrir()girar()detener()
Atributos
Operaciones
Nombre
Clases y ObjetosClases y Objetos
¿Cuántas clases ve?¿Cuántas clases ve?
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
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.
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.
TareaTarea
Proporcione Ud. 5 ejemplos deProporcione Ud. 5 ejemplos de• Clase, Clase, • objetos, objetos, • atributos y atributos y • operacionesoperaciones
Clase y objeto ConceptualClase y objeto Conceptual
Lavadora
marcamodelonumeroSeriecapacidad
agregarRopa ()agregarDeter()secarRopa()
miLavadora: Lavadora
marca = “Laundatorium”modelo = “Washmeister”numeroSerie = “GLS7774”capacidad = 16
Clase y objeto en UMLClase y objeto en UML
CuentanumeroCuentasaldofechaAperturasaldoPromedioabrir()consignar()suspender()sobregirar()
miCuenta : Cuenta
Nombre de la Clase
Atributos
Operaciones
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”
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.
MultiplicidadMultiplicidad
Jugador EquipoParticipa en
Cantidad de objetos de una clase que se relaciona con un objeto de la clase asociada.
11 1
... 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
Clase asociación
Empresa Persona
Empleo
descripciónsalariofechaContrato
* 1..*
empleador empleado
Clases que representan propiedades y operacionespropios de la relación
EnlacesEnlaces
J. Jayo Jugador Alianza Lima : EquipoParticipa en
Un enlace es una instancia de una asociación
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
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.
GeneralizaciónGeneralización
Persona
nombreapellido maternoapellido paternosexoedad
comer()beber()dormir()
Estudiante
gradocolegio
matricular()estudiar()
Trabajador
profesióncentro de trabajosalario
trabajar()cobrar()
Superclase
Subclases
Generalización/Generalización/EspecializaciónEspecialización
¿Qué significa el siguiente diagrama?
...Generalización...Generalización
Animal
Anfibio Mamifero Reptil
Caballo
Relación: subclase “es un tipo de” con la superclase
Ejemplo de generalización
Persona
Cliente Proveedor
Aumento deabstracciòn
Ejemplo de especialización
Cliente
minorista mayorista
Abstraccióndescendente
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.
...Agregación...Agregación
Computadora
Monitor Cases Teclado
CPU
Relación: subclase “es parte de” con la superclase
Mouse1 1 0,11
RAM Ventilador
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)
Ejemplo - diagrama de Ejemplo - diagrama de claseclase
CorrientetopeSobregiro
AhorrosaldoTrimestralinteres
CuentanroCuentasaldofecha apertura
HistoriaMovimientos
1..1 *1..1
+detalles
*
genera
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.
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
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
agenteComercial
proveedor
parte
cliente
producto
vendedor
Caso empresa de fabricación
Clases identificadas
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
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
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
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