Logo Studenta

Programacion orientada a objetos clase 2

¡Este material tiene más páginas!

Vista previa del material en texto

Paradigmas y Lenguajes
Programación Orientada a Objetos
POO 2
La Crisis del Software ...
Es el estado en el que se encuentra el software desde hace algún
tiempo, en el que los proyectos demoran mucho más de lo 
previsto, cuestan varias veces lo presupuestado y no alcanzan
a cubrir las expectativas previstas.
Posibles Causas
Complejidad de la realidad representada en el Software
Falta de una auténtica Ingeniería de Software
Posible solución:
Reusabilidad
quizás ?
POO 3
Qué son los Objetos ?
El enfoque orientado a objetos intenta manejar la complejidad inherente a problemas
del mundo real, abstrayendo el conocimiento y encapsulándolo dentro de objetos.
Objetos son las cosas conceptuales y físicas que encontramos en el universo que nos rodea.
Un problema se resuelve mediante la creación de los objetos adecuados que, mediante su
cooperación, consiguen el objetivo deseado.
La abstracción consiste en determinar la funcionalidad y los atributos de cada objeto,
de acuerdo con el problema a encarar. Un mismo objeto real puede tener diversas
representaciones abstractas, dependiendo de su rol dentro del problema.
Encapsular consiste en agrupar dentro de un objeto, sus datos y operaciones. 
Datos
Operaciones
Objeto
Qué puede hacer?
Qué conoce?
POO 4
El ciclo de vida del software orientado a objetos
Especificación
de
requerimientos
DiseñoImplementación
Prueba
Producción Retiro
Comienzo
Especificación de Requerimientos: Qué hará y qué no hará
el Software.
Diseño: Produce lo siguiente
* Un sistema de objetos que satisfacen los requerimientos
* Una descripción del comportamiento de esos objetos
* Los patrones de comunicación entre los objetos
Implementación: La OO hace más fácil la implementación,
porque se concentra en modelar los aspectos del mundo
real del sistema. El entendimiento del problema es más
completo. La implementación se puede distribuir dentro
de un equipo. Las modificaciones son puntuales y no afectan
otros componentes del software.
Prueba: Las partes pueden ser aisladas y probadas una a la vez.
Refinamiento y extensión: El enfoque OO es el único que
asegura que este proceso se puede realizar de manera natural
y controlada.
POO 5
Terminología y conceptos ...
Encapsulamiento: Un objeto puede pensarse como una “cápsula” que contiene su 
información y operaciones.
Información
y
operaciones
Ocultamiento de información: Es un concepto relacionado con el anterior. Un objeto
se percibe como una cápsula opaca, que no permite ver sus detalles de implementación.
Su contenido es sólo accesible a través de una interfaz pública. Públicamente el objeto revela
sus “habilidades”, pero sin decir cómo saber hacer tales cosas.
Interfaz pública
Representación
privada
POO 6
...más terminología ...
Mensaje: Es la única manera en que los objetos se comunican entre sí. Un objeto accede a
otro a través del envío de un mensaje.
El conjunto de mensajes que un objeto puede responder se conoce como comportamiento
del objeto.
Objeto
receptor
Nombre y
argumentos
Método: Cuando un objeto recibe un mensaje, ejecuta la operación mediante la ejecución de
un método. Es un algoritmo paso a paso que se ejecuta a solicitud. Los métodos son siempre
parte de la representación privada de un objeto y está compuesto a su vez por mensajes.
POO 7
Clases e Instancias
Una clase es una especificación genérica para un número arbitrario de objetos similares
Se puede pensar que una clase es una “plantilla” para un tipo específico de objeto, o una
fábrica que produce tantos objetos como se requieran.
Un objeto que se comporta de una manera especificada en una clase se llama instancia
de esa clase
Instanciación es el mecanismo de creación de un objeto a partir de una clase.
Ejemplo:
Clase: Perro Instancias: Lassie, Laica, Pluto, Rin Tin Tin
POO 8
Polimorfismo y Enlace Dinámico
El polimorfismo es la habilidad de dos o más objetos de distintas clases, de responder 
adecuadamente al mismo mensaje, cada uno de su propia manera.
Esta característica contribuye a la reusabilidad y la escalabilidad del software.
Ejemplo:
Saltar
El enlace dinámico (dyamic binding) consiste en la asignación de los tipos de datos
en tiempo de ejecución, haciendo posible de este modo el polimorfismo.
POO 9
Herencia
La herencia es la habilidad de una clase de definir el comportamiento y la estructura
de datos (atributos) de sus instancias como un superconjunto de otra clase.
Mediante este mecanismo se puede crear una clase (subclase) a partir de otra, heredando
todos sus métodos y atributos, los que a su vez pueden ser redefinidos (refinamiento).
Cuenta
Bancaria
Cuenta
Corriente
Caja de
Ahorro
Superclase
Subclase
Herencia Simple
Herencia
Selectiva
Herencia Múltiple
Generalización
Especialización
POO 10
Metodología de la OOP
Metodologías
Existen
muchas
Metodologías
Pero
todas
Encuentran objetos
Determinan sus Responsabilidades
Determinan Colaboraciones
En las herramientas !!!
En qué
difieren?
POO 11
Una metodología genérica ...
Presentaremos una metodología general que permitirá resolver problemas pequeños,
y tiene las siguientes características:
Se basa en el análisis de una narrativa que describe el comportamiento esperado del sistema
Primer paso: Identificar objetos
Segundo paso: Determinar comportamiento y atributos
Tercer paso: Ordenar las clases jerárquicamente (clasificación)
Cuarto paso: Construir el esquema de colaboración de los objetos
POO 12
Identificar objetos
Leer con detenimiento el texto. Los sustantivos son objetos candidatos.
Si esos sustantivos aparecen realizando actividades (verbos), es muy probable
que sean objetos que deben ser modelados, sino, pueden ser atributos de otros
objetos.
“Un banco ofrece a sus clientes dos tipos de cuentas
llamadas cuenta corriente y caja de ahorro. Ambas
tienen un saldo, pero en el caso de la caja de ahorro
nunca puede ser negativo. Sobre ellas se pueden 
realizar distintas operaciones tales como extraer
dinero ...
Por ahora no hay
acciones sobre saldo
POO 13
Determinar comportamiento y atributos. Clasificación
Este proceso tiende a modelar las clases a la que pertenecen los objetos del problema.
Para ello se listan las clases candidatas con sus acciones y atributos asociados.
Cuenta corriente (titular, saldo, acuerdo)
Extraer dinero - breve descripción de la acción ...
Depositar efectivo -
Depositar cheque -
Aplicar intereses -
...
...
Clasificación:
Es el proceso de “acomodar”jerárquicamente las nuevas clases en la estructura
ya existente.
POO 14
Construir el esquema de colaboración de objetos
Este paso consiste en transformar las reglas que rigen al problema en un conjunto de
Instrucciones (dadas a través de mensajes), que deben seguir los objetos para lograr
los objetivos.
POO 15
Un ejemplo de aplicación ...
Una empresa de tarjetas de crédito ofrece a sus clientes dos tipos de servicio:
-Tarjeta soft
-Tarjeta hard
La primera se otorga a clientes con un ingreso mínimo de $ 700. Los límites de compra y de
crédito son equivalentes al 130% y 250% de los ingresos declarados respectivamente.
Mensualmente se le entrega al cliente un resumen donde se consignan sus compras, el saldo del
período anterior y el saldo total. La empresa cobra en concepto de interés de los saldos
financiados, una tasa del 5% mensual. Sobre los saldos que superen el límite de crédito se
cobrará una tasa de mora del 10% mensual.
La segunda se otorga a clientes con un ingreso mínimo de $ 4000. No tiene límite de compra y
el de crédito es equivalente al 250% de los ingresos declarados. Mensualmente se le entrega al
cliente un resumen donde se consignan sus compras, el saldo del período anterior y el saldo
total. La empresa cobra en concepto de interés de los saldos financiados, una tasa del 4%
mensual. Sobre los saldos que superen el límite de crédito se cobrará una tasa de mora del 8%
mensual. Cuando las compras acumuladas superan los$ 100000, se le otorga al cliente un
premio sorpresa y el acumulador comienza nuevamente.

Continuar navegando