Title: El Modelo de Objetos
1El Modelo de Objetos
2Descomposición de un problema
- Encontrar los conceptos centrales del problema
- Definir las responsabilidades de cada concepto
- Encontrar las colaboraciones entre los conceptos
3Un programa Orientado a Objetos
Abstracciones (objetos)
Colaboraciones
4Conceptos centrales
- Abstracción caracterÃsticas esenciales del
objeto - Encapsulamiento ocultación de la implementación
- Modularidad paquetes de abstracciones agrupadas
en unidades discretas - Jerarquia clasificación de abstracciones
5Conceptos centrales (II)
Abstracción
de
Agrupación de
Encapsulamiento
Modularidad
de
JerarquÃa
6Objetos
- Un objeto representa una entidad individual
identificable, real o abstracta, con un papel
definido y preciso en el dominio del problema. - Todo objeto tiene estado, comportamiento e
identidad. - Los objetos con comportamiento similar se agrupan
en clases.
7Estado de un Objeto
- El estado de un objeto está constituÃdo por todas
sus propiedades estáticas y los valores actuales
de cada una de ellas
Propiedad
Valor
8Estado
- Los objetos son máquinas de estado su estado
actual depende de un estado inicial y de la
secuencia de estÃmulos recibidos. - Distintas secuencias de estÃmulos pueden implicar
distintos estados finales, aunque el estado
inicial sea el mismo
9Comportamiento
- Es la descripción de un objeto en términos de sus
cambios de estado y paso de mensajes. - El comportamiento es la actividad visible del
objeto - Está expresado por el conjunto de estÃmulos a los
que un objeto es capaz de responder.
10Operaciones
- Llamamos operación a la acción de un objeto sobre
otro a fin de provocar un comportamiento - Las operaciones pueden expresarse en términos de
un contrato, donde el cliente solicita un
servicio asegurando precondiciones y espera
poscondiciones
11Contrato
- Precondiciones son las cosas que deben
asegurarse antes de invocar la operación - Poscondiciones son las cosas que el receptor
garantiza al finalizar la ejecución de la
operación - Invariantes son aquellas cosas que permanecen
inmutables durante la ejecución de la operación
12Excepciones
- Son el mecanismo utilizado por un objeto para
indicar que una operación solicitada no pudo
cumplirse - Porque no se dan todas las precondiciones, o
- porque no pueden asegurarse los invariantes, o
- porque no pueden asegurarse las poscondiciones de
la operación
13Semántica de Mensajes
Precondiciones
Invariantes Poscondiciones
Respuesta
Mensaje (método parámetros )
Objeto
Excepciones
14Tipos de Operaciones
- Modificador (set) operación que altera todo o
parte del estado del objeto. - Selector (get) operación que accede al estado
interno del objeto pero no lo altera - Constructor operación que crea un objeto,
inicializando su estado - Comportamientos especÃficos
15Métodos
- Un método es la implementación de un
comportamiento dentro de un objeto. - Cada método tiene una visibilidad
- público es accesible por otros objetos
- privado sólo es utilizable por el propio objeto
- protegido es utilizable por el objeto y los
objetos instancias de clases derivadas
16Métodos (II)
- Cada método tiene una signatura con tres
componentes - El objeto receptor
- El nombre del método
- Los argumentos
- La ejecución de un método puede devolver uno,
ninguno o varios objetos
17Identidad
- Es la propiedad de un objeto que lo distingue de
todos los demás - ElementoPantalla x
- GradienteTemperatura gi
- La identidad de un objeto está indicada por su
referencia el nombre de un objeto es la
referencia del objeto fÃsico
18Ciclo de vida de un Objeto
- Un objeto ocupa un espacio de memoria durante un
tiempo determinado
Destrucción
Construcción
Utilización
Finalización
Persistencia
19Persistencia
- Es la propiedad de un objeto de sobrevivir en el
tiempo al objeto que lo creó
20Persistencia
- resultados transitorios de la evaluación de
expresiones - variables locales a un procedimiento
- variables del espacio de memoria libre
- datos de configuración usados en ! ejecuciones
de una aplicación - datos usados por ! versiones de una aplicación
- datos que sobreviven a una aplicación
21Objetos activos y pasivos
- Los activos exhiben comportamiento sin que nadie
actúe sobre ellos son autónomos. - Los pasivos sólo cambian de estado cuando reciben
estÃmulo externo - Los sistemas secuenciales tienen sólo un objeto
activo, mientras que los sistemas concurrentes
tienen varios.
22Sincronización
- Cuando un objeto envÃa un mensaje a otro se dice
que ambos estan sincronizados. - Como distintos objetos pueden enviar mensajes
simultáneamente a otro, aparece la concurrencia
23Concurrencia
A
t0 m1
D (Pasivo)
B
t0 m2
C
Tres objetos activos (A, B y C) envÃan mensajes
simultáneos a un servidor pasivo (D)
t0 m3
24Concurrencia
- En el enlace de objetos activos con uno pasivo
hay tres tipos de sincronización - Secuencial el o. pasivo funciona bien en
presencia de un solo actor. - Vigilado los objetos activos deben respetar la
exclusión mutua - SÃncrono el o. pasivo garantiza ejecución
correcta en un escenario de concurrencia
25Relaciones
- Asociación entre objetos para cumplir una
responsabilidad determinada - Las asociaciones pueden ser uno a uno o uno a
varios - Ejemplo un cliente utiliza los servicios de un
servidor
Cliente
Servidor
Método
26Roles
- En una asociación, cada objeto cumple un rol
determinado. - Actor opera sobre otros
- Servidor otros operan sobre él
- Agente es Actor en algunas asociaciones y
Servidor en otras
27Relaciones entre clases
- Generalización/Especialización herencia
- Todo/Parte agregación
- Asociación dependencia semántica entre clases
independientes
28Polimorfismo
- Es un concepto esencial que permite construir
código reutilizable - Significa que objetos de clases distintas pueden
entender mensajes iguales - El cliente envÃa un mismo mensaje a objetos
diferentes. Cada receptor implementará un
comportamiento especÃfico
29Polimorfismo (II)
Imágen
Cada objeto provee una implementación distinta de
Imprimir que produce el comportamiento buscado
por el cliente
imprimir
cliente
Texto
imprimir
30Polimorfismo (III)
- Mensajes que tienen sentido semejante deben tener
el mismo nombre para maximizar la flexibilidad
que otorga el polimorfismo. - El cliente delega en el objeto receptor la
responsabilidad de proveer la implementación
correcta
31Enlace Dinámico
- Dynamic Binding en inglés, es la asociación entre
el objeto receptor y el mensaje que se le envÃa,
producida en el momento de la ejecución de la
aplicación
unaCuenta.extraer( 100 )
Este código invocará el método extraer() del
objeto unaCuenta. Esto supone que la clase a la
que pertenece el objeto unaCuenta tiene un
método extraer(), o su superclase, o las
ascendientes
32Enlace Dinámico (II)
- La versión del mensaje a ejecutarse se
determina dinámicamente en el momento de la
ejecución, basada en la clase del objeto
unaCuenta. - Este concepto está asociado al polimorfismo y a
la herencia para otorgar gran flexibilidad al
diseño orientado a objetos