Descarga la aplicación para disfrutar aún más
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.
Compartir