PROGRAMACION ORIENTADA A OBJETOS

Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

slide 1:

Teamoalexistapia88 Escriba el subtítulo del documento P r o f e s o r : I n g . D a v i d M o r a l e s FACUALTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÒN IV SEMESTRE Este libro nos hablara sobre las nociones básicas que un programador debe saber y tomar en cuenta para entrar a lo que es la Programación Orientada a Objetos 2014 UNIVERSIDAD TÈCNICA DE AMBATO DIEGO ROJAS

slide 2:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 1

slide 3:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 2 INDICE IN TRO D UC CION … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … ….4 UNA NUEVA FORMA DE PENSA … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … ….. 6 QUE ES LA P OO … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … …..7 HISTORIA … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … ….. 8 IMPACTO DE LA POO … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … 9 CARACTERISTICAS DE LA POO … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … 10 VENTAJAS Y DESVENTAJAS … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … …. 11-12 EVOLUCION DE LOS LENGUAJES DE P RO GRAMACI ON … … … … … … … … … … … … … … … … … … … … …..13 EVOLUCION EN CUANTO AL ENFOQUE … … … … … … … … … … … … … … … … … … … … … … … … … … … … … ….14. EVOLUCION EN CUANTO A LA CON CE P TUA L IZA CION … … … … … … … … … … … … … … … … … … … … … …15 OBJ ET O … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … ….16-17 CLASE … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … ….. 18-21 IN STA N CIA CION … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … …..22 CON CL US ION ES … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … …..23 BIB L IOGRA FI A … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … …..24

slide 4:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 3

slide 5:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 4 INTRODUCCION Es importante aclarar desde un principio la diferencia que existe entre programación orientada a objetos y un lenguaje orientado a objetos. La programación orientada a objetos es una “filosofía” un modelo de programación con su teoría y su metodología que conviene conocer y estudiar antes de nada. Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones orientadas a objetos. Dicho esto lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la “filosofía” o adquiera la forma de pensar y después el lenguaje porque “filosofía” sólo hay una y lenguajes muchos. En este documento veremos brevemente los conceptos básicos de la programación orientada a objetos desde un punto de vista global sin particularizar para ningún lenguaje de programación específico. Un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos cada una de las cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquía de clases unidas mediante relaciones de herencia” Booch. La OOP no es un lenguaje de programación puede aplicarse a cualquier lenguaje y de hecho hoy en día está disponible en mayor o menor medida en todos los lenguajes tradicionales C se ha convertido en C++ Pascal en Delphi VB incorpora parte de la OOP y no aparece un lenguaje nuevo sin que incluya OOP como es el caso de Java. El diseño orientado por objetos DOO como otra metodología de diseños orientados a la información crea una representación del dominio del problema en el mundo real y lo transforma en un dominio de soluciones que es el software. A diferencia de otros métodos el DOO da como resultado un diseño el cual interconexiona los objetos de datos elementos de datos y las operaciones de procesamiento de forma tal que encapsula la información y el procesamiento. Este encapsulamiento es el paradigma fundamental de la orientación por objetos.

slide 6:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 5

slide 7:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 6 UNA FORMA NUEVA DE PENSAR Es muy importante destacar que cuando hacemos referencia a la programación orientada a objetos no estamos hablando de unas cuantas características nuevas añadidas a un lenguaje de programación. Estamos hablando de una nueva forma de pensar acerca del proceso de descomposición de problemas y de desarrollo de soluciones de programación. La programación orientada a objetos surge en la historia como un intento para dominar la complejidad que de forma innata posee el software. Tradicionalmente la forma de enfrentarse a esta complejidad ha sido empleando lo que llamamos programación estructurada que consiste en descomponer el problema objeto de resolución en subproblemas y más subproblemas hasta llegar a acciones muy simples y fáciles de codificar. Se trata de descomponer el problema en acciones en verbos. En el ejemplo de un programa que resuelva ecuaciones de segundo grado descomponíamos el problema en las siguientes acciones: primero pedir el valor de los coeficientes a b y c después calcular el valor del discriminante y por último en función del signo del discriminante calcular ninguna una o dos raíces. Como podemos ver descomponíamos el problema en acciones en verbos por ejemplo el verbo pedir el verbo hallar el verbo comprobar el verbo calcular… La programación orientada a objetos es otra forma de descomponer problemas. Este nuevo método de descomposición es la descomposición en objetos vamos a fijarnos no en lo que hay que hacer en el problema sino en cuál es el escenario real del mismo y vamos a intentar simular ese escenario en nuestro programa. La programación orientada a objetos es una nueva forma de pensar una manera distinta de enfocar los problemas. Ahí radica la dificultad de aprender un lenguaje totalmente orientado a objetos como es Java sin conocer previamente los pilares de la programación orientada a objetos. Hecha esta importante aclaración conviene destacar que Java más que un lenguaje orientado a objetos es un lenguaje de objetos. Java incorpora el uso de la orientación a objetos como uno de los pilares básicos y fundamentales del lenguaje. Esto constituye una importante diferencia con respecto a C++. C++ está pensado para su utilización como lenguaje orientado a objetos pero también es cierto que con C++ se puede escribir código sin haber oído nada de la programación orientada a objetos. Esta situación no se da en Java dotado desde las primeras etapas de su diseño de esta filosofía y donde no cabe obviar la orientación a objetos para el desarrollo de programas por sencillos que éstos sean. Al contrario que en C++ en Java nada se puede hacer sin usar al menos un objeto.

slide 8:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 7 Q u e e s l a P r o g r a m a c i o n O r i e n t a d a a O b j e t o s La programación orientada a objetos es un concepto que se extendió a través de los departamentos de ciencias informáticas universitarias en los años 80 y de la comunidad de producción de aplicaciones en los años 90. Al igual que la "programación modular" antes y la "programación en Internet" después POO generó cierto debate. Ahora bien los conceptos de programación modular están aceptados universalmente y muchos de los conceptos de la programación orientada a objetos también lo están aunque quedan aún algunas objeciones al paradigma de programación orientada a objetos. Programa OO Clase Objeto Colección estructurada de clases Implementación de un TAD Una instancia de una clase Espacio del mundo real Objetos reales y actividades Objetos abstractos y operaciones en lenguaje de programación Objeto reales cambio de estado Datos e información Problema Modelo Programa Algorítmo Resultado Usuario Representar mediante abstracción Programador Algorítmo del mundo real Resultado Espacio del programa Interpreta

slide 9:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 8 HISTORIA DE LA PROGRAMACION ORIENTADA A OBJETOS Surge en Noruega en1967 con un lenguaje llamado Simula 67 desarrollado por Krinsten Nygaard y Ole-Johan Dahl en el centro de cálculo noruego. El nacimiento de la Programación Orientación a Objetos en Europa pasó inadvertido para gran parte de los programadores. Hoy tenemos la Orientación a Objetos como un niño de 33 años al que todos quieren bautizar. Uno de los problemas de inicio de los años setentas era que pocos sistemas lograban terminarse pocos se terminaban con los requisitos iniciales y no todos los que se terminaban cumpliendo con los requerimientos se usaban según lo planificado. El problema consistía en cómo adaptar el software a nuevos requerimientos imposibles de haber sido planificados inicialmente. Este alto grado de planificación y previsión es contrario a la propia realidad. El hombre aprende y crea a través de la experimentación no de la planeación. La Orientación a Objetos brinda estos métodos de experimentación no exige la planificación de un proyecto por completo antes de escribir la primera línea de código. En los 70’s Small talk fue el primer lenguaje Orientado a Objetos puro de los lenguajes Orientados a Objetos es decir únicamente utiliza clases y objetos Java usa tipos de datos primitivos o bien los Wrappers que son clases que encapsulan tipos de datos primitivos. En los años 80’s Bjarne Stroustrup de ATT Labs. amplió el lenguaje C para crear C++ que soporta la programación Orientada a Objetos. En esta misma década se desarrollaron otros lenguajes Orientados a Objetos como Objective C Common Lisp Object System CIOS object Pascal Ada y otros. En el inicio de los 90’s se consolida la Orientación a Objetos como una de las mejores maneras para resolver problemas. Aumenta la necesidad de generar prototipos más rápidamente concepto RAD Rapid Aplication Developments. Sin esperar a que los requerimientos iniciales estén totalmente precisos. En 1996 surge un desarrollo llamado JAVA extensión de C++. Su filosofía es aprovechar el software existente. Facilitar la adaptación del mismo a otros usos diferentes a los originales sin necesidad de modificar el código ya existente. En 1997-98 se desarrollan herramientas ‘CASE’ orientadas a objetos como el diseño asistido por computadora. Del 98 a la fecha se desarrolla la arquitectura de objetos distribuidos RMI Corba COM DCOM. Actualmente la orientación a objetos parece ser el mejor paradigma no obstante no es una solución a todos los problemas. Trata de eliminar la crisis del software. Entre los creadores de metodologías orientadas a objetos se encuentran: G. Booch Rambaught Ivar Jacobson y Peter Cheng.

slide 10:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 9 IMPACTO DE LA POGRAMACIÒN ORIENTADA A OBJETOS La programación orientada a objetos también es mucho más fiable por diversas razones. En primer lugar por el desarrollo incremental y la programación por diferencia al poder ir añadiendo funcionalidad vía herencia. El tamaño medio de una rutina en entornos orientados a objetos es de 4 o 5 líneas y se ha de tener en cuenta que sólo se tienen rutinas ya que no existe el concepto de programa principal. La utilización masiva de librerías de clases garantiza la fiabilidad ya que los componentes sólo se añaden a la librería cuando se ha verifi-cado la corrección de su funcionamiento. El mundo de las bases de datos está moviéndose hacia la orientación a objetos. Por un lado se tienen las BDOO bases de datos orientadas a objetos puras POET Objectstore etc. y por otro las relacionales. En las BDOO la organización ODMG representa el 100 de las BDOO industriales y ha establecido un estándar de definición ODL y manipulación OQL de bases de datos equivalente a SQL. Respecto a las relacionales todas Oracle Informix etc. están añadiendo en mayor o menor grado algunos aspectos de la orientación a objetos. ANSI por su parte está definiendo un SQL-3 que incorpora muchos aspectos de la orientación a objetos. El futuro del SQL-3 es sin embargo incierto ya que ODMG ha ofrecido a ANSI su estándar para que sirva de base para un nuevo SQL con lo que sólo habría un único estándar de base de datos. Como cabía esperar los sistemas operativos también están siendo afectados por la orientación a objetos. En primer lugar ya se tiene un primer sistema operativo orientado a objetos NextStep que está integrado con Sun. Microsoft por su parte ha anunciado para 1996 un sistema operativo orientado a objetos llamado de momento Cairo. IBM y Apple también están creando uno nuevo a través de la empresa Taligent que de momento se denomina Pink y que también estará disponible a finales del 95 o principios del 96.

slide 11:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 10 CARACTERISTICAS DE LA PROGRAMACIÒN ORIENTADA A OBJETOS Denota las características esenciales de un objeto donde se capturan sus comportamientos. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar. Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad al mismo nivel de abstracción. Esto permite aumentar lacohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación principalmente porque se suelen emplear conjuntamente. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir y extender su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común.

slide 12:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 11 VENTAJAS Y DESVENTAJAS Ventajas de uso:  Reusabilidad mecanismos de abstracción y herencia  En programación convencional: uso de funciones y procedimientos  Adecuación a entornos de bases de datos.  Idónea para tratamiento de Interfaces de Usuario.  Adecuada en prototipos y simulación.  Mejor mantenimiento.  Estructuras más reales de la información  Escalabilidad.  Adaptabilidad.  Más apropiada para aplicaciones dirigidas por eventos.  El código que tiene algo que ver con las naves espaciales se encuentra en un solo lugar.  Los objetos pueden poseer atributos inherentes de la clase a la que pertenecen por ejemplo naves espaciales y asteroides podrían tener ambos una posición XY porque todos los objetos que pertenecen a la clase de los objetos en movimiento tiene una posición XY. Características generales:  Construcción de sistemas complejos a partir de componentes.  Modelado más fiel del mundo real.  Estimación de reducción de 40 con respecto a la programación convencional respecto a la programación convencional. Desventajas de uso:  No todos los programas pueden ser modelados con exactitud por el modelo de objetos. Si lo que deseas es leer algunos datos hacerles algo simple y escribir de nuevo no tienes necesidad de definir clases y objetos. Sin embargo en algunos lenguajes de POO puede que tengas que realizar este paso extra.  Si se fuerza el lenguaje en el concepto de programación orientada a objetos se pierden algunas de las características de lenguajes útiles como los "lenguajes funcionales".  Otra desventaja el que concepto que un programador tiene de lo que constituye un objeto abstracto puede no coincidir con la visión de otro

slide 13:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 12 programador. Los objetos a menudo requieren una extensa documentación. El futuro de la Programación Orientada a Objetos: El futuro de la programación orientada a objetos probablemente se encuentra con lenguajes como Ruby y Lua en el que se construye el concepto de objeto en el lenguaje y no siempre es explícitamente controlado por el programador. Ruby por ejemplo trata todo como un objeto incluidas cadenas números tu programa y los contenidos del directorio en el que estás actualmente. Casi nunca tendrás que declarar algo como un objeto. Eres libre de utilizar el lenguaje como quieras: como programación orientada a objetos como un lenguaje funcional como lenguaje de procedimiento o incluso en formas que mezclan las modalidades

slide 14:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 13 Evolución de los lenguajes de programación Toda la historia de los lenguajes de programación se ha desarrollado en base a una sola idea conductora: hacer que la tarea de realizar programas para ordenadores sea cada vez lo más simple flexible y portable posible. La OOP supone no solo un nuevo paso hacia ese fin sino que además a nuestro juicio es el más importante acaecido hasta el momento. Como nos comenta Eckel: "A medida que se van desarrollando los lenguajes se va desarrollando también la posibilidad de resolver problemas cada vez más complejos. En la evolución de cada lenguaje llega un momento en el que los programadores comienzan a tener dificultades a la hora de manejar programas que sean de un cierto tamaño y sofisticación." Bruce Eckel "Aplique C++" p. 5 Ed. McGrow-Hill. Esta evolución en los lenguajes ha venido impulsada por dos motores bien distintos: Los avances tecnológicos Los avances conceptuales de planteamiento Los avances en cuanto a enfoque de la programación

slide 15:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 14 EVOLUCIÒN EN CUANTO AL ENFOQUE La evolución de los lenguajes de programación en cuanto a enfoque es también una evolución conceptual pero ésta es tan profunda que supone un cambio drástico en cuanto al modo de concebir el tratamiento de la programación. En este sentido y dependiendo del autor a quien se consulte existen dos o tres enfoques diferentes: Programación procedural Programación declarativa Programación orientada a objetos  Casi todos los lenguajes que conocemos trabajan de forma procedural. Java C Pascal BASIC Cobol Fortran APL RPG Clipper etc  En ellos debemos establecer hechos datos reglas para el manejo de esos datos y de decisión y tenemos que decirle al lenguaje cómo alcanzar el objetivo que se persigue. Es decir donde buscar la información cómo manipularla cuando parar etc.  Los lenguajes más conocidos que existen hasta ahora salvo PROLOG son todos procedurales éste es declarativo  A esta maquinaria se le llama motor de inferencias que es por otro lado el corazón de un Sistema Experto. Probablemente de este tipo de programas -los más famosos de la Inteligencia Artificial- habrá usted oído hablar.  Son un conjunto de técnicas que nos permiten incrementar enormemente nuestro proceso de producción de software aumentando drásticamente nuestra productividad por un lado y permitiéndonos abordar proyectos de mucha mayor envergadura por otro.

slide 16:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 15 EVOLUCIÒN EN CUANTO A LA CONCEPTUALIZACION EVOLUCIÒN Programación Estructurada: Es cuando planteamos funciones que agrupan actividades a desarrollar y luego dentro de la página llamamos a dichas funciones que pueden estar dentro del mismo archivo o en una librería separada. Programación Orientada a Objetos: Es cuando planteamos clases y definimos objetos de las mismas Programación Lineal: Es cuando desarrollamos todo el código disponiendo instrucciones PHP alternando con el HTML de la página.

slide 17:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 16 OBJETO

slide 18:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 17 EJEMPLO:

slide 19:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 18 CLASE

slide 20:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 19

slide 21:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 20

slide 22:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 21

slide 23:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 22

slide 24:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 23 CONCLUSIONES: La programación orientada a objetos permite la optimización del código generado gracias a que mediante técnicas de herencia atributos estáticos entre otros permiten que el código sea genérico de manera que sea reutilizable. Mediante la técnica aprendida en el presente curso podemos establecer una solución primitiva de un problema real tan solo con relacionarlo con objetos lógicos que serán usados para el desarrollo del software. Podemos dar a conocer de una forma sencilla los mecanismos que se usan en este nivel de programación a personas que deseen una explicación rápida y sencilla de lo que es la programación orientada a objetos. Tenemos los conocimientos necesarios como para enfrentar un problema real y desarrollo en otro lenguaje de programación pues concebimos la idea de que el lenguaje C es la base de la programación. Al trabajar con la programación orientada a objetos sea esta desarrollada en otras plataformas de programación o en lenguaje C sabemos las formas de lograr un mejor rendimiento del equipo a controlar y aplicar soluciones sencillas de manera que sea fácilment digeribles para el usuario y/o destinatario del trabajo final.

slide 25:

UNIVERSIDAD TÉCNICA DE AMBATO - Docencia en Informática Página 24 BIBLIOGRAFIA http://es.wikipedia.org/wiki/ProgramaciC3B3n_orientada_a_objetos http://sis324loo.blogspot.com/2008/09/historia-de-los-lenguajes-de_29.html http://www.ati.es/novatica/1995/mar-abr/n114obje.html http://www.luis.izqui.org/resources/ProgOrientadaObjetos.pdf http://www.cc.uah.es/jlcastillo/POO/media/POOCap3-1.pdf http://kataix.umag.cl/ruribe/Utilidades/Introduccion20a20la20Programaci on20Orientada20a20Objetos.pdf

authorStream Live Help