1 / 64

Programación Orientada a Objetos

Programación Orientada a Objetos. INTRODUCCI ÓN Y CONCEPTOS. www.ingsistemaseliaschoez.wordpress.com. Introducción a Orientación a Objetos. www.ingsistemaseliaschoez.wordpress.com. Paradigma Procedimental. El paradigma procedimental ve a un sistema de computo como un “procesador de datos”

goldy
Télécharger la présentation

Programación Orientada a Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programación Orientada a Objetos INTRODUCCIÓN Y CONCEPTOS www.ingsistemaseliaschoez.wordpress.com

  2. Introducción a Orientación a Objetos www.ingsistemaseliaschoez.wordpress.com

  3. Paradigma Procedimental • El paradigma procedimental ve a un sistema de computo como un “procesador de datos” • Los datos ingresan al programa y se van transformando al pasar por una serie de funciones www.ingsistemaseliaschoez.wordpress.com

  4. Paradigma Procedimental • Sistema de Rol de Pagos: • Obtener la lista de empleados • Obtener el registro de horas de trabajo • Obtener las tablas de remuneración y descuentos • Para cada empleado: • Calcular la cantidad a pagar • Calcular las retenciones e impuestos • Calcular la paga neta • Preparar el cheque • Anotar el cheque en el sistema de contabilidad • Enviar el cheque al empleado • Devolver todos los documentos a su respectivo lugar www.ingsistemaseliaschoez.wordpress.com

  5. Paradigma Procedimental • Esas operaciones pueden llevarse a cabo con un computador • Los pasos necesarios para llegar a cabo una tarea se conocen como “proceso” • Cada uno de los pasos se conoce como “procedimiento” www.ingsistemaseliaschoez.wordpress.com

  6. Paradigma Procedimental • ¿Cuales serían los procedimientos para el programa de rol de pagos? www.ingsistemaseliaschoez.wordpress.com

  7. Paradigma Procedimental • ¿Cuales serían los procedimientos para el programa de rol de pagos? • Abrir base de Datos • Calcular Cantidad a Pagar • Calcular Sueldo • Calcular Retenciones • Imprimir Cheques • Actualizar Base de Datos • Cerrar Base de Datos www.ingsistemaseliaschoez.wordpress.com

  8. Paradigma Procedimental • Cada procedimiento recibe datos de entrada, los procesa y luego los transmite a otro procedimiento y finalmente a un humano. • Los datos son dados a los procedimientos de una manera similar a la que la materia prima es alimentada una línea de ensamblaje. www.ingsistemaseliaschoez.wordpress.com

  9. Paradigma Procedimental • El diseñador trata de descomponer los problemas en pequeños procedimientos que siendo ejecutados en el orden correcto hacen que el sistema llegue a una respuesta. • Esto funciona muy bien para problemas pequeños. ¿Pero que pasa con sistemas grandes y donde lo que gobierna al sistema no son los datos sino los eventos? www.ingsistemaseliaschoez.wordpress.com

  10. Paradigma Procedimental • Ejemplos de este tipo de problema son los sistemas interactivos • En ellos el flujo del programa ya no es lineal, sino que dependerá de la respuesta del usuario • El orden en que los procedimientos son llamados no se conoce de antemano www.ingsistemaseliaschoez.wordpress.com

  11. Construcción de una casa para “fido” Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples www.ingsistemaseliaschoez.wordpress.com

  12. Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas www.ingsistemaseliaschoez.wordpress.com

  13. Construcción de un rascacielos www.ingsistemaseliaschoez.wordpress.com

  14. Paradigma Orientado a Objetos • En el paradigma orientado a objetos, el diseñador trata de resolver un problema modelando los diferentes objetos presentes y sus diferentes interacciones • En este paradigma los datos no son algo externo al programa, sino que está embebido dentro de los “objetos” www.ingsistemaseliaschoez.wordpress.com

  15. Paradigma Orientado a Objetos • El paradigma orientado a objetos permite al programador concentrarse en el la solución al problema y no en cómo implementarla en un computador • Brinda tres claras ventajas sobre el paradigma procedimental: • Fácil Mantenimiento • Reusable • Escalable www.ingsistemaseliaschoez.wordpress.com

  16. ¿Por qué la POO es Popular? • Similaridad con la forma de pensar acerca de los problemas en la vida real • Es muy escalable, desde problemas triviales hasta sistemas muy complejos • El uso de librerías permite el desarrollo de aplicaciones en muchos campos natural reuso www.ingsistemaseliaschoez.wordpress.com

  17. Lenguajes y Pensamiento • Una teoría muy aceptada entre los lingüistas asevera que el lenguaje que hablamos influencia directamente la manera en la cual vemos el mundo y expresamos nuestros pensamientos. • Los esquimales son un ejemplo, su idioma tienes muchas palabras para describir los diversos tipos de nieve. Es muy fácil expresar situaciones complejas relacionadas con nieve en ese lenguaje que en un lenguaje menos adaptado para eso. • Esto se aplica tanto a lenguajes naturales como a lenguajes computacionales. www.ingsistemaseliaschoez.wordpress.com

  18. Lenguajes de Programación y Solución de Problemas Ejemplo: análisis de una secuencia de DNA • Las secuencias de DNA es representada como un vector de valores enteros: ACTCGGATCTTGCATTTCGGCAATTGG….. • Encontrar si un patrón de largo M (donde M es pequeño y fijo) esta repetido en una secuencia de DNA de longitud N (siendo N muy muy largo)

  19. Solución en Fortran DO 10 I = 1, N-M DO 10 J = 1, N-M FOUND= .TRUE. DO 20 K = 1, M IF X[I+K-1] .NE. X[J+K-1] THEN FOUND = .FALSE. IF FOUND THEN ….

  20. Solución en APL ACTCCTCGATCCATTTCGGCAATTGG…. Reorganizar en una matriz N x M Ordenar la matriz por columnas Buscar filas adyacentes iguales ACTCCTC 1-7 ACTCCTC CTCCTCG 2-8 CCTCGAT TCCTCGA 3-9 CGATCCA CCTCGAT 4-10 CTCCTCG CTCGATC 5-11 CTCGATC TCGATCC 6-12 TCCTCGA CGATCCA 7-13 TCGATCC

  21. Comparación de las 2 Soluciones • Los programadores de Fortran (procedimentales) piensan en términos de lazos. La solución en Fortran es extremadamente lenta O(M x N2) • El programador de APL (funcional) piensa en términos de manipulación de secuencias, el ordenamiento es algo interno del lenguaje y los lazos no existen. La solución en APL es mas rápida O(M x NlogN) a pesar de que APL no es un lenguaje más eficiente que Fortran www.ingsistemaseliaschoez.wordpress.com

  22. Conjetura de Church e Hipótesis de Safir-Worf • Hipótesis Safir-Worf: afirma que un individuo utilizando un lenguaje dado puede tener ideas o pensamientos que no pueden ser traducidas o entendidas por un individuo que usa otro lenguaje. • Conjetura de Church: cualquier programa puede ser escrito por una máquina de Turing, o sea que cualquier programa puede ser escrito en cualquier lenguaje de programación. • Si bien Church demuestra su conjetura, un nuevo lenguaje puede no ofrecer mayor poder de computo pero puede proveer una manera más fácil o natural para resolver cierto tipos de problemas. www.ingsistemaseliaschoez.wordpress.com

  23. Soluciones OO y Lenguajes OO • El uso efectivo de los principios de la orientación a objetos requiere que el programador vea el mundo de una manera diferente • El uso de un lenguaje orientado a objetos simplifica el desarrollo de soluciones orientadas a objetos. • El uso de un lenguaje orientado a objetos no convierte al individuo en un programador orientado a objetos. “programas de Fortran pueden ser escritos en cualquier lenguaje” www.ingsistemaseliaschoez.wordpress.com

  24. Programación OO • Vista Macro: • La programación orientada a objetos trata sobre el desarrollo de software utilizando un paradigma que descompone el problema en objetos independientes • Vista Micro: • La programación orientada a objetos es utilizar un lenguaje orientado a objetos para implementar soluciones de software www.ingsistemaseliaschoez.wordpress.com

  25. Análisis y Diseño Orientado a Objetos (UML) Reuso Diseño basado en Patrones Marcos de Trabajo (Frameworks) Componentes Vista Macro www.ingsistemaseliaschoez.wordpress.com

  26. Vista Micro • Clases y Objetos • Mensajes y Métodos • Jerarquía de Clases y Herencia • Encapsulación y Ocultamiento de Información • Unión de Métodos y Polimorfismo • Lenguajes www.ingsistemaseliaschoez.wordpress.com

  27. ¿Un nuevo paradigma? • Paradigma = conjunto de teorías, estándares y métodos que juntos representan maneras de organizar el conocimiento y ver el mundo. • En la ciencia una revolución ocurre cuando un paradigma viejo es reexaminado, rechazado y remplazado por uno nuevo • Paradigma de Programación = una manera de conceptuar que significa computar y como estructurar y organizar las tareas que deben ser llevadas a cabo por una computadora www.ingsistemaseliaschoez.wordpress.com

  28. Paradigma Orientado a Objetos • Para entender POO necesitamos comprender los siguientes conceptos: • Objeto • Clase • Y los siguientes principios • Encapsulación • Paso de Mensajes • Herencia • Polimorfismo www.ingsistemaseliaschoez.wordpress.com

  29. POO: Una nueva manera de ver el mundo “ Juan quiere mandar flores a su amiga Ana que vive en otra ciudad. Debido a la distancia Juan no puede llevar las flores directamente a Ana. Juan acude a Pedro, un florista local, y le da el número y tipo de flores que quiere enviarle a Ana y su dirección. Juan puede estar seguro que las flores serán entregadas a Ana. ” www.ingsistemaseliaschoez.wordpress.com

  30. Agentes, Responsabilidad, Mensajes y Métodos • Juan encuentra un agente apropiado (Pedro) • Y le envía un mensaje que contiene una petición. • Es la responsabilidad de Pedro el satisfacer esa petición. • Existe algún método (conjunto de operaciones) usadas por Pedro para entregar las flores. • Juan no necesita conocer el método particular que Pedro utilizará, esa información esta oculta. www.ingsistemaseliaschoez.wordpress.com

  31. POO: el Principio General • Un programa orientado a objetos esta estructurado como una comunidad de agentes que interactúan entre si llamados objetos. • Las acciones son iniciadas por la transmisión de mensajes a un agente (un objeto). • El mensaje codifica un requerimiento de acción y es acompañado por información adicional (argumentos) necesaria para llevar a cabo el requerimiento. • El receptor es el agente al cual el mensajes es enviado. Si el receptor acepta el mensaje, acepta la responsabilidad de llevar a cabo la acción solicitada. • En respuesta a un mensajes el receptor ejecutará algún método para satisfacer el requerimiento. www.ingsistemaseliaschoez.wordpress.com

  32. Objeto • ¿Qué es un objeto? • Así como los procedimientos son la base para construir programas estructurados, los objetos son usados para construir programas orientados a objetos • Un programa orientado a objetos es una colección de objetos que están organizados para, y cooperan para, lograr un objetivo. www.ingsistemaseliaschoez.wordpress.com

  33. Objeto • Cada objeto: • Contiene datos: Los datos guardan información que describe el estado del objeto. • Tiene un conjunto de comportamientos: Estos comportamientos son cosas que el objeto sabe como hacer y que son disparadas por mensajes enviados al objeto. • Tiene identidad individual: Esto hace posible distinguir un objeto de otro así como es posible distinguir una variable de otra www.ingsistemaseliaschoez.wordpress.com

  34. Objeto • Objeto empleado: Empleado # 03123 Datos: Nombre: Juan Perez Horas que trabaja a la semana: 40 Afiliado al seguro: si Comportamiento: Calcular Sueldo Calcular Retenciones Cambiar horario de trabajo www.ingsistemaseliaschoez.wordpress.com

  35. Objeto • Un objeto es una abstracción de una entidad del mundo real. • Los datos de un objeto son conocidos como los atributos • Los comportamientos de un objeto son conocidos como métodos. www.ingsistemaseliaschoez.wordpress.com

  36. Enviar Mensajes vs. Llamadas a Procedimientos • Un mensaje tiene un receptor designado (algún objeto) • La interpretación del mensaje, ej.: el método usado en respuesta a un mensaje es determinado por el receptor y pude variar entre diferentes receptores. • Muy frecuentemente el receptor real no es conocido sino hasta tiempo de ejecución. A esto se lo conoce como unión tardía o dinámica entre un mensaje y el fragmento de código (método) utilizado para responder al mensaje. www.ingsistemaseliaschoez.wordpress.com

  37. Responsabilidad y Abstracción • Analizar un problema en términos de responsabilidades incrementa el nivel de abstracción y permite una mayor independencia entre agentes. • La conjunto completo de responsabilidades asociadas con un objeto se describes con el término protocolo o interfaz. • Un receptor acepta la responsabilidad de responder a un mensaje. El que envía no necesita conocer los detalles de método usado. Esta es una forma estándar y poderosa de abstracción conocida como ocultamiento de información. www.ingsistemaseliaschoez.wordpress.com

  38. Paradigma Orientado a Objetos • Paso de Mensajes • Es la manera en que un objeto se comunica con otro • El método de un objeto pude llamar a un método público de otro objeto • Por ejemplo el objeto “conductor” puede enviar el mensaje “acelerar” al objeto “automovil” www.ingsistemaseliaschoez.wordpress.com

  39. Metodo Metodo Metodo Metodo Metodo Metodo Metodo Metodo Datos Datos Datos Datos Datos Datos Metodo Metodo Datos Datos Metodo Metodo Metodo Metodo Metodo Metodo Paradigma Orientado a Objetos • Paso de Mensajes Objeto B Objeto A www.ingsistemaseliaschoez.wordpress.com

  40. Paradigma Orientado a Objetos • Encapsulación • Encapsulación es el proceso de empaquetar los objetos, de tal manera que cada uno tenga dos partes, la interfaz y la implementación • La interfaz es la parte pública de un objeto (la que todos pueden ver) • La implementación es la parte privada de un objeto (la que solo conoce el programador) www.ingsistemaseliaschoez.wordpress.com

  41. Paradigma Orientado a Objetos • Encapsulación • Este no es un concepto original de POO. • ¿Podemos encontrar ejemplos del mundo real donde se utilice la encapsulación? • La encapsulación hace que el mantenimiento de mi programa sea mucho más sencillo. www.ingsistemaseliaschoez.wordpress.com

  42. Clases e Instancias • A pesar de que Juan no conoce a Pedro muy bien, el tiene una idea aproximada de como tratar y que pedir a Pedro. Juan es capaz de hacer ciertas asunciones basado en su experiencia previa con otros floristas. El espera que Pedro, siendo una instancia de la categoría de floristas, se ajuste a ese patrón. • Todos los objetos son instancias de una clase. El método invocado por un objeto para responder a un mensaje es determinado por su clase. • Todos los objetos de una misma clase usan el mismo método para responder al mismo mensaje. www.ingsistemaseliaschoez.wordpress.com

  43. Paradigma Orientado a Objetos • ¿Qué es una clase? • Las clases son los planos para construir los objetos • Lo que se especificamos no son los objetos, sino las clases de que estos se construyen. • Las clases especifican que atributos y métodos tendrá un objeto que se fabrique a partir de dicha clase. www.ingsistemaseliaschoez.wordpress.com

  44. Paradigma Orientado a Objetos Clase Objetos www.ingsistemaseliaschoez.wordpress.com

  45. Clase Bicicleta Atributos Tamaño de frame Tamaño de llanta Material ... Abstraídos en Operaciones Cambio Mover Reparar Objetos bicicletas Paradigma Orientado a Objetos www.ingsistemaseliaschoez.wordpress.com

  46. Jerarquía de clases y Herencia • Juan tiene más información acerca de Pedro, no necesariamente porque es un florista, sino porque Pedro es un vendedor, un humano, un mamífero, un animal y un objeto material. • El principio que afirma que el conocimiento de una categoría más general es también aplicable a una categoría más específica es llamado herencia. • Las clases pueden ser organizadas dentro de una estructura jerárquica. Una clase hija (o subclase) hereda los atributos de su clase padre (superclase). • Una clase abstracta existe solamente para agrupar subclases. www.ingsistemaseliaschoez.wordpress.com

  47. Categorías de Pedro Objeto Material Animal Mamífero Humano Vendedor Florista Pedro www.ingsistemaseliaschoez.wordpress.com

  48. Jerarquía de la clase Objeto Material Objeto Material Animal Planta Mamífero Flores Perro Humano Ornitorrinco Tulipanes Vendedor Artista Fil Tulipán 1 Tulipán 2 Tulipán 3 Sultán Florista Pintor Luis Pedro www.ingsistemaseliaschoez.wordpress.com

  49. Paradigma Orientado a Objetos • Herencia • Es un mecanismo para compartir atributos y métodos entre clases. • Por la herencia se forman jerarquías de clases (subclases y superclases). • Las subclases heredan los atributos y métodos de las superclases • Permite la reusabilidad. www.ingsistemaseliaschoez.wordpress.com

  50. Unión de Métodos y Polimorfismo • Si Juan pidiera a María, otra florista, que envíe flores a Ana por su cumpleaños, ella podría usar un método diferente al usado por Pedro. • El método que se ejecuta en respuesta a un mensaje depende del receptor del mensaje. • Que métodos diferentes se ejecuten en respuesta al mismo mensaje se conoce como polimorfismo. www.ingsistemaseliaschoez.wordpress.com

More Related