El documento presenta diferentes técnicas de modelado, incluyendo modelos de clases, objetos, atributos, operaciones, asociaciones, agregaciones y herencia. Explica conceptos básicos de programación orientada a objetos como objetos, clases, estados, comportamientos e identidades.
2. Espacio de debate
¿Es importante para el usuario final si el
sistema fue programado orientado a
objetos o estructurado?
Entonces. ¿A quién interesa el paradigma
de programación utilizado para su
desarrollo?
3. Paradigma estructurado
El sistema se modela como un conjunto de
procedimientos que intercambian
información.
Datos y lógica por separado
Diagrama de Flujos de Datos
4. Paradigma Orientado a Objetos
El sistema se modela como un conjunto de
objetos que intercambian mensajes.
Datos y lógica encapsulados en clases
o1 o4 o3
M1.4
M1.3
5. Conceptos O-O
Objetos
Clases
Atributos y Operaciones
Asociaciones y enlaces
Generalización y Agregación
6. ¿Qué es un Objeto?
• Informalmente, un objeto representa una entidad física,
conceptual o programa
Entidad física Entidad conceptual
Camión Proceso Químico
Entidad
Programa
Lista Enlazada
7. Objeto
Persona Persona Vehículo Vehículo
Juan María Ford Chevrolet
García Reyes Mustang Corsa
Rodríguez Hernández Blanco Azul
Masculino Femenino SX-54852545 425-AB-8455
15 45
mover() mover()
comer() comer() abrir() abrir()
beber() beber() girar() girar()
dormir() dormir() detener() detener()
8. Una definición formal
• Un objeto es un concepto, una abstracción o una cosa
con límites bien definidas y significado para una
aplicación
• Un objeto es algo que tiene:
– Estado
– Comportamiento
– Identidad
9. Un Objeto tiene Estado
• El estado de un objeto es una de las posibles condiciones en que
el objeto puede existir
• El estado normalmente cambia en el transcurso del tiempo
• El estado de un objeto es implementado por un conjunto de
propiedades (llamadas atributos), con los valores de las
propiedades, además de las conexiones que deben tener con
otros objetos
a + b = 10
Nombre: Joyce Clark
Nº Empleado: 567138
Fecha de Contr.: 21 de marzo 1987
Estado: Adjunto
Profesor Clark
10. Estado
Persona Persona Vehículo Vehículo
Juan Juan Ford Ford
García García Mustang Mustang
Rodríguez Rodríguez Blanco Rojo
Masculino Masculino SX-54852545 SX-54852545
15 32
mover() mover()
abrir() abrir()
comer() comer()
girar() girar()
beber() beber()
detener() detener()
dormir() dormir()
11. Un Objeto tiene Comportamiento
• El comportamiento de un objeto determina
cómo éste actúa y reacciona frente a las
peticiones de otros objetos
• El comportamiento de un objeto es modelado
por un conjunto de mensajes a los que puede
responder (las operaciones que el objeto
puede realizar)
12. Paso de mensajes
Invocación de métodos
Medio de colaboración
entre objetos
Conectar()
:MandoADistancia :Televisor
Canal(4)
13. Un Objeto tiene Identidad
• Cada objeto tiene una identidad única, incluso
si su estado es idéntico al de otro objeto
Profesor “J Perez” Profesor “J Perez” Profesor “M Molina”
enseña Algebra enseña Algebra enseña Matemátcias
14. ¿Qué son las Clases?
• Hay muchos objetos identificados para cada
dominio
• Una clase es una descripción de un grupo de
objetos con propiedades en común (atributos),
comportamiento similar (operaciones), la
misma manera de relacionarse entre objetos
(asociaciones y agregados) y una semántica
en común
– Un objeto es una instancia de una clase
15. Clases
Representan un conjunto de objetos con
características comunes.
COMPUTADORAS
LIBROS
16. Clase
Persona Nombre
nombre
apellido materno
apellido paterno Atributos
sexo
edad
comer()
beber() Operaciones
dormir()
17. Clase
Nombre Vehículo
marca
modelo
Atributos color
número de serie
mover()
abrir()
Operaciones girar()
detener()
19. Clases y Objetos
Clase : Objeto:
• Lavadora, • Mi lavadora,
• Automóvil, • Auto de placa SGC437,
• Persona, • Luis Quispe Garcia,
• Factura, • Factura Nro. 12345.,
• Pedido. • Pedido Nro. 54321
20. Atributos
Un atributo es una propiedad de una clase y
describe un rango de valores que la propiedad
podrá contener en los objetos de la clase.
Atributos de la Clase Valores en Objeto: Mi
Lavadora: lavadora:
Marca, laundatorium,
Modelo, washmeister,
Número de serie, GL57774 ,
Capacidad.
Capacidad 7 kg.
21. Operaciones
Una operación es algo que la clase puede realizar o
que otra clase puede hacer a una clase.
Es una función o transformación que se puede
aplicar o que puede ser aplicada por los objetos de
una clase.
Ejemplo : Lavadora
• Agregar ropa,
• Agregar detergente,
• Secar ropa.
23. Clase y objeto Conceptual
Lavadora miLavadora: Lavadora
marca marca = “Laundatorium”
modelo modelo = “Washmeister”
numeroSerie numeroSerie = “GLS7774”
capacidad
capacidad = 16
agregarRopa ()
agregarDeter()
secarRopa()
24. Clase y objeto en UML
Cuenta Nombre de la Clase
numeroCuenta
saldo Atributos
fechaApertura
saldoPromedio
abrir()
consignar() Operaciones
suspender()
sobregirar()
miCuenta : Cuenta
25. Enlaces y Asociaciones
Las entidades o cosas del mundo real se
relacionan con otras entidades.
A las relaciones entre objetos se les llama
enlaces.
A las relaciones entre clases se les llama
asociaciones.
Ej. “ Jugador participa en Equipo”
Ej. “ Claudio Pizarro participa en Bayern Munich”
26. Asociaciones
Participa en
Jugador Equipo
Un cliente puede tener asociadas muchas Ordenes de
Un cliente puede tener asociadas muchas Ordenes de
Compra, en cambio una orden de compra solo puede
Compra, en cambio una orden de compra solo puede
tener asociado un cliente..
tener asociado un cliente
27. Multiplicidad
Cantidad de objetos de una clase que se
relaciona con un objeto de la clase asociada.
Jugador 11 Participa en 1 Equipo
28. ... Multiplicidad
Esposo 1 Casado con 1 Esposa Uno a uno
1 Enseña *
Estudiante Uno a muchos
Maestro
Cajero 1 Atiende 1..* Cliente Uno a uno o más
Uno a ninguno o
Casa 1 Tiene 0,1 Chimenea
uno
1 Contiene 12 Huevos Uno a 12
Caja
29. Clase asociación
Empresa * 1..* Persona
empleador empleado
Empleo
descripción
salario
fechaContrato
Clases que representan propiedades y operaciones
propios de la relación
30. Enlaces
Un enlace es una instancia de una asociación
Participa en
J. Jayo Jugador Alianza Lima : Equipo
31. Elementos de una asociación
roles
Compañia empleador_de emplea empleado
Persona
0..1 *
Nombre owner 1
asociación
dirección de
navegación
multiplicidad *
Password
33. Generalización
Persona
nombre
apellido materno
apellido paterno
Superclase sexo
edad
comer()
beber()
dormir()
Estudiante Trabajador
grado
Subclases profesión
colegio centro de trabajo
salario
matricular()
estudiar() trabajar()
cobrar()
38. Agregación
Una clase consta de otras clases.
Es una relación entre clases componentes
asociada a una clase ensamble completo.
Ejemplo: Un microcomputadora esta compuesta
por :
• Un Monitor,
• Caja del Sistema,
• Uno o ningun ratón y
• Un teclado.
39. ...Agregación
Computadora
1 1 1 0,1
Monitor Cases Teclado Mouse
CPU RAM Ventilador
Relación: subclase “es parte de” con la superclase
40. Agregación / composición
Pais
PC
Dpto
Monitor Chasis Mouse Teclado
Municipio
Agregació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)
41. Ejemplo - diagrama de clase
Cuenta +detalles
nroCuenta genera
HistoriaMovimientos
saldo
fecha apertura 1..1 *
Corriente Ahorro
topeSobregiro saldoTrimestral
interes
42. Construcció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.
43. Caso empresa de fabricación
Construcción de Diagrama 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.
44. 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 .
45. Caso empresa de fabricación
Clases identificadas
producto
vendedor parte
proveedor
cliente agenteComercial
46. Caso empresa de fabricación
Asociaciones
producto 1..* se forma 1..* parte
vendedor
0..*
0..*
se vende
Se compra
agenteComercial
0..* 0..*
cliente proveedor
47. Caso empresa de fabricación
atributos
vendedor producto parte
nombre 1..* se forma 1..* numParte
apellido
nombre precioBase descripción
porcComis
0..*
agenteComercial 0..*
se vende
cuit
razSocial Se compra
email
telf
direcc
0..*
0..*
cliente proveedor
porcDesc plazoPago
48. Caso empresa de fabricación
organizar: clases asociación, herencia
vendedor producto parte
nombre 1..* se forma 1..* numParte
apellido
nombre precioBase descripción
porcComis
0..* 0..*
definición
1
participa
se vende
0..*
Se compra compra
agenteComercial
venta
cuit
razSocial
email
telf
direcc
0..* 0..*
cliente proveedor
porcDesc plazoPago
49. vendedor producto parte
nombre 1..* se forma 1..* numParte
apellido
nombre precioBase descripción
porcComis
0..* definición 0..*
1 cantidad
participa
se vende
compra
0..* Se compra fecha
agenteComercial
venta cantidad
cuit
fecha razSocial
email
telf
direcc
0..* 0..*
cliente proveedor
porcDesc plazoPago
Hinweis der Redaktion
Un objeto es una representación computarizada de una entidad, del mundo real o inventado. Un objeto puede representar algo concreto del dominio del problema, tal como un camión o un computador. Un objeto puede también representar un concepto, tal como un proceso químico, una transacción bancaria, órdenes de compras, historia de crédito, o tasas de interés. En sistemas orientados a objetos, los objetos también son usados para representar estructuras de software tales como listas ligadas, árboles binarios y archivos. Estos objetos no son tipicamente encontrados en el dominio del problema. Más bien, son inventados para ayudar a facilitar la implementación.
Los dos primeros objetos representan a la clase Persona y el conjunto de los atributos tiene valores diferentes en cada objeto. Esta característica hace que cada objeto sea diferente y único con respecto a los otros de su clase. El hecho de pertenecer a la misma clase no hace que los objetos se consideren iguales. Son los valores de cada uno y la forma de responder a las operaciones los que los diferencian entre sí.
Los objetos son también llamados “instancias”, porque representan sucesos actuales de cosas en el mundo real. Los términos estado, comportamiento e identidad serán explicados en detalle en los próximos cuadros .
El estado es dependiente del tiempo. Cuando pregunto en qué estado se encuentra un objeto, siempre va implicado un tiempo: AHORA. Este es un ejemplo muy estático: el estado cambia de no-permanente a permanente a retirado. Un objeto más dinámico: un estado de vuelo cambia desde : vacío a abordando a abordado a en vuelo.
Los dos primeros objetos son miembros de una misma clase y representan a un mismo objeto. La variación del valor de uno de sus atributos, en este caso la edad, establece dos estados diferentes para el mismo objeto. Dicho objeto ha variado el valor del atributo edad en momentos o instantes diferentes de su ciclo de vida.
Comportamiento es un concepto difícil para muchos. Uno no puede sólo hacerle algo a un objeto -- uno debe pedir al objeto que lo haga. La sintáxis de un lenguaje llamado MODSIM (lenguaje orientado a estímulos de objetos) realmente ayuda con esto. La sintáxis es: PEDIR al objeto A un comportamiento (ASK object TO behavior) Un buen ejemplo: En una simulación de baseball existe un lanzador y una pelota. El lanzador no lanza la pelota. El comportamiento de lanzar del lanzador le pide a la pelota que se mueva. La pelota sabe cómo moverse (con un poco de ayuda como la velocidad)
Los objetos son distinguidos por su existencia inherente y NO por sus propiedades descriptivas.
Para representar una clase se utiliza un rectángulo dividido en tres partes. Parte: Se coloca el nombre de la clase. Parte: Se colocan los atributos. Parte: Se especifican las operaciones de la clase. La clase Persona contiene atributos y operaciones que caracterizan a cualquier elemento de su tipo. Los valores que contenga cada atributo establecerán la diferencia entre todos los elementos de la misma clase.
La clase Vehículo contiene atributos y operaciones que caracterizan a cualquier elemento de su tipo. Los valores que contenga cada atributo establecerán la diferencia entre todos los elementos de la misma clase.
El propósito de este cuadro es motivar la necesidad de clases. Un respuesta obvia es dos: animales y equipos electrónicos. Son posibles muchos otros nombres para estas clases y eso está muy bien. Otra posible respuesta es cosas encontradas dentro la casa y cosas encontradas fuera de la casa. O cosas que se mueven, y cosas que no se mueven. ¿Puede encontrar una sola clase que incluya todos los objetos? Suponga que ud. es el creador de este cuadro. Cuántas clases ve? La respuesta es una: íconos. Otro estudiante dijo que el cuadro mostraba “cosas que se estaban extinguiendo”: un águila, un elefante asiático, teléfono de tono, un televisor en blanco y negro, un tiburón, y un video beta !! Esto es bueno para la risa. Ojo: Las clases elegidas dependen del dominio de la aplicación.
Un Objeto es una instancia de una clase, i.e. es una entidad que tiene valores específicos de los atributos y las operaciones.
La clase Persona es la Superclase de la Generalización y las clases Estudiante y Trabajador son las subclases. En una Generalización múltiple las clases de niveles intermedios se nombran subclases para referirse a los niveles superiores y superclases para los niveles inferiores a ellas. La generalización se representa a través de una línea recta entre las clases terminada en un triángulo blanco en el extremo cercano a la superclase. La Generalización puede encontrarse en aquellas clases que tienen ciertos atributos y operaciones en común. En ese caso se crea una clase nueva que asume dicho comportamiento común.