Introducción a programación
orientada a objetos




             Julio Cesar González Cervantes
Clasificación del Software
Sistemas          1.   Multitarea           Windows, Unix
                       Multiusuario         Unix
Operativos        2.

                  3.   Multiproceso         Unix
                  4.   Línea Comando
                                            MS DOS
                  5.   Interfaz Gráfica
                                            Windows, Macintosh




Lenguajes de      1.   Bajo Nivel           Ensamblador
                       Nivel Medio          Visual Basic, C
Programación      2.

                  3.   Alto Nivel

Aplicación De     1.   Proc. Textos         Word
                       Hoja Cálculo         Excel
Uso General       2.

                  3.   Base datos           Acces, SQL server
                  4.   Presentación
                                            Power point
Aplicación De     1.   Antivirus            Autocad, Corel, Flash,
Uso Especifico    2.   Compresores          etc.
                  3.   Diseño. Etc.
                   Nominas , Inventarios,   Sistemas de Bancos
Desarrollados a   etc.
Categorías de los Lenguajes de
                          Programación
 Según su Nivel de Abstracción
1. Lenguaje máquina (lenguaje de bajo nivel)
• Es el que entiende la computadora.
• Las instrucciones se expresan en forma
  binaria.
• Los programas creados en lenguaje
  máquina solo pueden ejecutarse en los
  procesadores para los que fueron creados.
Categorías de los Lenguajes de
                Programación
Categorías de los Lenguajes de
                              Programación


2. Lenguaje Ensamblador (lenguaje de nivel medio)
Emplea representación simbólica y utiliza
  procedimientos mnemotécnicos de
  funciones matemáticas. Los datos se
  identifican con nombres y permiten la
  introducción de comentarios para entender
  el programa con mayor facilidad y optimiza
  los recursos del hardware.
Categorías de los Lenguajes de
                          Programación
3. Lenguaje de alto nivel
• Lenguajes más acorde con el lenguaje humano.
• Utilizan palabras y frases (por lo general en inglés).
• Permiten modificar los códigos de los programas
  con facilidad.
• Son independientes de la estructura física de la
  computadora, contando con instrucciones de uso
  frecuente como las funciones matemáticas.
• Son lenguajes de programación alejados del
  lenguaje máquina lo cual necesitan ser traducidos
  antes de ejecutarse y esta tarea se realiza por
  medio de los intérpretes o los compiladores:
Línea de tiempo histórica de los lenguajes
                        de programación.
Línea de tiempo histórica de los lenguajes
                        de programación.
Primera Generación: lenguaje de máquina 1940-1950.
 Consistía en sucesiones de dígitos binarios. Aún en la
 actualidad, es el único lenguaje interno que entiende la
 computadora; los programas se escriben en lenguajes de
 mayor nivel y se traducen a lenguaje de máquina.

Segunda Generación: lenguajes ensambladores fines 1950.
 En lugar de usar códigos binarios, las instrucciones se
 representan con símbolos fáciles de reconocer, conocidos
 como mnemotécnicos. Aún se utilizan estos lenguajes
 cuando interesa un nivel máximo de eficiencia en la
 ejecución o cuando se requieren manipulaciones
 intrincadas.
Tercera Generación: Años '60. Los lenguajes de esta
 generación se dividen en tres categorías, según se
 orienten a: Procedimientos: la forma en la que se
 programan. Problema: El problema que intentan
 resolver. Objeto: Como se encarara el objeto a
 desarrollar. Lenguajes como COBOL, FORTRAN y Basic
 son los ejemplos de esta generación
Cuarta Generación: Las características generales de
 los lenguajes de cuarta generación son: Uso de frases
 y oraciones parecidas al inglés para emitir
 instrucciones.
Quinta Generación: o Lenguajes naturales
 Esta generación incluye la inteligencia artificial y
 sistemas expertos. En lugar de sólo ejecutar un
 conjunto de órdenes, el objetivo de estos sistemas es
 “pensar” y anticipar las necesidades de los usuarios.
 Estos sistemas se encuentran aún en desarrollo.
Evolución de la programación
Evolución de la programación

Programación lineal
Programación Modular
Programación Estructurada
Programación Orientada a
 Objetos
Programación lineal

• Los lenguajes de programación lineal (BASIC,
  COBOL Y FORTRAN) no tenían facilidad para
  reutilizar el código existente de programas. De
  hecho se duplicaban segmentos de software cada
  vez más en muchos programas. Los programas se
  ejecutaban en secuencias lógicas, haciendo la
  lógica difícil de comprender. El control de
  programas era difícil y se producían continuos
  saltos a lo largo del referido programa. Aún más,
  los lenguajes lineales no tenían capacidad de
  controlar la visibilidad de los elementos llamados
  datos
Programación Modular
• El soporte más elemental de la programación Modular llegó
  con la aparición de la subrutina. Una subrutina ha creado una
  secuencia de instrucciones a las que se les da un nombre
  independiente; una vez que se ha definido, la subrutina se
  puede ejecutar simplemente incluyendo el nombre del
  programa siempre que se requiera. Las subrutinas
  proporcionan una división natural de las tareas; diferentes
  programas utilizan. Aunque las subrutinas proporcionan el
  mecanismo básico de la programación Modular, se necesita
  mucha disciplina para crear software bien estructurado.
• Un módulo es cada una de las partes de un programa que
  resuelve uno de los subproblemas en que se divide el
  problema complejo original.
Programación Estructurada

• Un concepto importante en campo de la programación
  Estructurada: Abstracción, ya que la Abstracción se
  puede definir como la capacidad de examinar algo sin
  preocuparse de los detalles internos. En un programa
  estructurado, es suficiente conocer que un
  procedimiento sea fiable, para que se pueda utilizar sin
  tener que conocer cómo funciona su interior. Esto se
  conoce como una Abstracción funcional y es el núcleo
  de la programación estructurada. Hoy casi todos los
  lenguajes de programación tienen construcciones que
  facilitan la programación estructurada.
• La programación estructurada sigue tres reglas: la
  secuencia, la iteración y la decisión.
Programación Orientada a
                Objetos ( POO , OOP)
• Se basa en la idea natural de la existencia de un
  mundo lleno de objetos y que la resolución del
  problema se realiza en términos de objetos. Un
  lenguaje se dice que está basado en objetos si
  soporta como una característica fundamental del
  mismo.
• El elemento fundamental de la (POO) es, como su
  nombre lo indica, el objeto.
• La programación orientada a objetos (POO) toma
  como modelo a los objetos reales para elaborar su
  contraparte en software.
• La programación orientada a objetos nos brinda una
  forma natural de ver el proceso de programación, a
  saber, mediante el modelado de objetos reales, sus
  atributos y comportamiento. La programación
  orientada a objetos proporciona también
  comunicación entre los objetos. Tal como las
  personas se envían mensajes entre sí, los objetos
  también se comunican mediante mensajes.
• La programación orientada a objetos encapsula
  datos (atributos) y funciones (operaciones) en
  paquetes llamados objetos; los datos y las funciones
  de un objeto están íntimamente ligados.
Propiedades de la Programación
Orientada a Objetos
• La orientación a objetos trata de cumplir las necesidades de
  los usuarios finales, así como las propias de los
  desarrolladores de productos software. Estas tareas se
  realizan mediante la modelización del mundo real. El soporte
  fundamental es el modelo objeto. Las propiedades más
  importantes de este modelo son:
       •   Abstracción
       •   Encapsulamiento
       •   Modularidad
       •   Jerarquía
       •   Polimorfismo
       •   Otras propiedades: concurrencia (multitarea), persistencia,
           genericidad, manejo de excepciones.
http://www.crysfel.com/common/ejemplos/conceptosPoo/tns.jpg
Ventajas de POO
La OOP proporciona las siguientes ventajas sobre otros lenguajes
   de programación
• Uniformidad. Ya que la representación de los objetos lleva
   implica tanto el análisis como el diseño y la codificación de los
   mismos.
• Comprensión. Tanto los datos que componen los objetos,
   como los procedimientos que los manipulan, están agrupados
   en clases, que se corresponden con las estructuras de
   información que el programa trata.
• Flexibilidad. Al tener relacionados los procedimientos que
   manipulan los datos con los datos a tratar, cualquier cambio
   que se realice sobre ellos quedará reflejado automáticamente
   en cualquier lugar donde estos datos aparezcan.
Ventajas de POO (Cont)
• Estabilidad. Dado que permite un tratamiento diferenciado
  de aquellos objetos que permanecen constantes en el tiempo
  sobre aquellos que cambian con frecuencia permite aislar las
  partes del programa que permanecen inalterables en el
  tiempo.
• Reusabilidad. La noción de objeto permite que programas
  que traten las mismas estructuras de información reutilicen
  las definiciones de objetos empleadas en otros programas e
  incluso los procedimientos que los manipulan. De esta forma,
  el desarrollo de un programa puede llegar a ser una simple
  combinación de objetos ya definidos donde estos están
  relacionados de una manera particular.
Ventajas del Modelo orientado a objetos
con respecto al modelo estructurado:
• Un modelo de objetos es más cercano a la realidad que un
  modelo funcional.
• Un desarrollo realizado con el modelo orientado a objetos es
  más fácil de mantener y de reutilizar.
• El modelo orientado a objetos evita la redundancia en los
  procesos luego los códigos son más entendibles y resumidos.
• La integridad que dan los objetos a los datos evita
  ambigüedades en su uso, dando mayor seguridad en los
  resultados.
• El modelo orientado a objetos facilita la integridad de
  módulos que hallan sido realizados por separado sin correr
  riesgos en el manejo de los datos.
Qué es un objeto

• Los objetos son como los tipos abstractos de datos.
• Un objeto es una colección de datos, junto con las
  funciones asociadas, utilizadas para operar sobre
  esos datos.
• La potencia real de los objetos reside en las
  propiedades que soportan: herencia, encapsulación
  (o encapsulamiento) y polimorfismo junto con los
  conceptos de objetos, clases, métodos y mensajes.
• Los humanos pensamos en términos de objetos. La
  abstracción nos permite ver imágenes u objetos del
  mundo real.
Qué es un objeto
Características de los Objetos
• Se agrupan en tipos denominados clases.
• Contienen datos internos que definen su estado
  actual.
• Soportan ocultación de datos. (El usuario de una
  clase en particular no necesita saber cómo están
  estructurados los datos dentro de ese objeto)
• Pueden heredar propiedades de otros objetos.
• Pueden comunicarse con otros objetos enviando o
  pasando mensajes.
• Tienen métodos que definen su comportamiento.
Qué es una Clase
• Una clase es un tipo definido por el usuario
  que determina las estructuras de datos y las
  operaciones asociadas con ese tipo.
• Son como plantillas o modelos.
• Cuando se construye un objeto de una clase,
  se crea una instancia de clase.
• Instancia de clase = objeto
• Una clase es la estructura de un objeto, es decir, la
  definición de todos los elementos de que está hecho
  un objeto. Un objeto es, por lo tanto, el "resultado"
  de una clase. En realidad, un objeto es una instancia
  de una clase, por lo que se pueden intercambiar los
  términos objeto o instancia (o incluso evento).
• Una clase se compone de dos partes:
      • Atributos (denominados, por lo general, datos
        miembros): esto es, los datos que se refieren al
        estado del objeto
      • Métodos (denominados, por lo general,
        funciones miembros): son funciones que
        pueden aplicarse a objetos
www.oscarsotorrio.com/2008/10/default
Bibliografía:
• http://delta.cs.cinvestav.mx/~fraga/Charlas/o
  bjetos.pdf
• http://es.wikipedia.org/wiki/Programaci
  %C3%B3n_modular
• Universidad de los Andes / Proyecto CUPID2

Introobjetos

  • 1.
    Introducción a programación orientadaa objetos Julio Cesar González Cervantes
  • 4.
    Clasificación del Software Sistemas 1. Multitarea Windows, Unix Multiusuario Unix Operativos 2. 3. Multiproceso Unix 4. Línea Comando MS DOS 5. Interfaz Gráfica Windows, Macintosh Lenguajes de 1. Bajo Nivel Ensamblador Nivel Medio Visual Basic, C Programación 2. 3. Alto Nivel Aplicación De 1. Proc. Textos Word Hoja Cálculo Excel Uso General 2. 3. Base datos Acces, SQL server 4. Presentación Power point Aplicación De 1. Antivirus Autocad, Corel, Flash, Uso Especifico 2. Compresores etc. 3. Diseño. Etc. Nominas , Inventarios, Sistemas de Bancos Desarrollados a etc.
  • 5.
    Categorías de losLenguajes de Programación Según su Nivel de Abstracción 1. Lenguaje máquina (lenguaje de bajo nivel) • Es el que entiende la computadora. • Las instrucciones se expresan en forma binaria. • Los programas creados en lenguaje máquina solo pueden ejecutarse en los procesadores para los que fueron creados.
  • 6.
    Categorías de losLenguajes de Programación
  • 7.
    Categorías de losLenguajes de Programación 2. Lenguaje Ensamblador (lenguaje de nivel medio) Emplea representación simbólica y utiliza procedimientos mnemotécnicos de funciones matemáticas. Los datos se identifican con nombres y permiten la introducción de comentarios para entender el programa con mayor facilidad y optimiza los recursos del hardware.
  • 8.
    Categorías de losLenguajes de Programación 3. Lenguaje de alto nivel • Lenguajes más acorde con el lenguaje humano. • Utilizan palabras y frases (por lo general en inglés). • Permiten modificar los códigos de los programas con facilidad. • Son independientes de la estructura física de la computadora, contando con instrucciones de uso frecuente como las funciones matemáticas. • Son lenguajes de programación alejados del lenguaje máquina lo cual necesitan ser traducidos antes de ejecutarse y esta tarea se realiza por medio de los intérpretes o los compiladores:
  • 9.
    Línea de tiempohistórica de los lenguajes de programación.
  • 10.
    Línea de tiempohistórica de los lenguajes de programación. Primera Generación: lenguaje de máquina 1940-1950. Consistía en sucesiones de dígitos binarios. Aún en la actualidad, es el único lenguaje interno que entiende la computadora; los programas se escriben en lenguajes de mayor nivel y se traducen a lenguaje de máquina. Segunda Generación: lenguajes ensambladores fines 1950. En lugar de usar códigos binarios, las instrucciones se representan con símbolos fáciles de reconocer, conocidos como mnemotécnicos. Aún se utilizan estos lenguajes cuando interesa un nivel máximo de eficiencia en la ejecución o cuando se requieren manipulaciones intrincadas.
  • 11.
    Tercera Generación: Años'60. Los lenguajes de esta generación se dividen en tres categorías, según se orienten a: Procedimientos: la forma en la que se programan. Problema: El problema que intentan resolver. Objeto: Como se encarara el objeto a desarrollar. Lenguajes como COBOL, FORTRAN y Basic son los ejemplos de esta generación Cuarta Generación: Las características generales de los lenguajes de cuarta generación son: Uso de frases y oraciones parecidas al inglés para emitir instrucciones. Quinta Generación: o Lenguajes naturales Esta generación incluye la inteligencia artificial y sistemas expertos. En lugar de sólo ejecutar un conjunto de órdenes, el objetivo de estos sistemas es “pensar” y anticipar las necesidades de los usuarios. Estos sistemas se encuentran aún en desarrollo.
  • 12.
    Evolución de laprogramación
  • 13.
    Evolución de laprogramación Programación lineal Programación Modular Programación Estructurada Programación Orientada a Objetos
  • 14.
    Programación lineal • Loslenguajes de programación lineal (BASIC, COBOL Y FORTRAN) no tenían facilidad para reutilizar el código existente de programas. De hecho se duplicaban segmentos de software cada vez más en muchos programas. Los programas se ejecutaban en secuencias lógicas, haciendo la lógica difícil de comprender. El control de programas era difícil y se producían continuos saltos a lo largo del referido programa. Aún más, los lenguajes lineales no tenían capacidad de controlar la visibilidad de los elementos llamados datos
  • 15.
    Programación Modular • Elsoporte más elemental de la programación Modular llegó con la aparición de la subrutina. Una subrutina ha creado una secuencia de instrucciones a las que se les da un nombre independiente; una vez que se ha definido, la subrutina se puede ejecutar simplemente incluyendo el nombre del programa siempre que se requiera. Las subrutinas proporcionan una división natural de las tareas; diferentes programas utilizan. Aunque las subrutinas proporcionan el mecanismo básico de la programación Modular, se necesita mucha disciplina para crear software bien estructurado. • Un módulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original.
  • 16.
    Programación Estructurada • Unconcepto importante en campo de la programación Estructurada: Abstracción, ya que la Abstracción se puede definir como la capacidad de examinar algo sin preocuparse de los detalles internos. En un programa estructurado, es suficiente conocer que un procedimiento sea fiable, para que se pueda utilizar sin tener que conocer cómo funciona su interior. Esto se conoce como una Abstracción funcional y es el núcleo de la programación estructurada. Hoy casi todos los lenguajes de programación tienen construcciones que facilitan la programación estructurada. • La programación estructurada sigue tres reglas: la secuencia, la iteración y la decisión.
  • 17.
    Programación Orientada a Objetos ( POO , OOP) • Se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos. Un lenguaje se dice que está basado en objetos si soporta como una característica fundamental del mismo. • El elemento fundamental de la (POO) es, como su nombre lo indica, el objeto. • La programación orientada a objetos (POO) toma como modelo a los objetos reales para elaborar su contraparte en software.
  • 18.
    • La programaciónorientada a objetos nos brinda una forma natural de ver el proceso de programación, a saber, mediante el modelado de objetos reales, sus atributos y comportamiento. La programación orientada a objetos proporciona también comunicación entre los objetos. Tal como las personas se envían mensajes entre sí, los objetos también se comunican mediante mensajes. • La programación orientada a objetos encapsula datos (atributos) y funciones (operaciones) en paquetes llamados objetos; los datos y las funciones de un objeto están íntimamente ligados.
  • 19.
    Propiedades de laProgramación Orientada a Objetos • La orientación a objetos trata de cumplir las necesidades de los usuarios finales, así como las propias de los desarrolladores de productos software. Estas tareas se realizan mediante la modelización del mundo real. El soporte fundamental es el modelo objeto. Las propiedades más importantes de este modelo son: • Abstracción • Encapsulamiento • Modularidad • Jerarquía • Polimorfismo • Otras propiedades: concurrencia (multitarea), persistencia, genericidad, manejo de excepciones.
  • 20.
  • 21.
    Ventajas de POO LaOOP proporciona las siguientes ventajas sobre otros lenguajes de programación • Uniformidad. Ya que la representación de los objetos lleva implica tanto el análisis como el diseño y la codificación de los mismos. • Comprensión. Tanto los datos que componen los objetos, como los procedimientos que los manipulan, están agrupados en clases, que se corresponden con las estructuras de información que el programa trata. • Flexibilidad. Al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cambio que se realice sobre ellos quedará reflejado automáticamente en cualquier lugar donde estos datos aparezcan.
  • 22.
    Ventajas de POO(Cont) • Estabilidad. Dado que permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo. • Reusabilidad. La noción de objeto permite que programas que traten las mismas estructuras de información reutilicen las definiciones de objetos empleadas en otros programas e incluso los procedimientos que los manipulan. De esta forma, el desarrollo de un programa puede llegar a ser una simple combinación de objetos ya definidos donde estos están relacionados de una manera particular.
  • 23.
    Ventajas del Modeloorientado a objetos con respecto al modelo estructurado: • Un modelo de objetos es más cercano a la realidad que un modelo funcional. • Un desarrollo realizado con el modelo orientado a objetos es más fácil de mantener y de reutilizar. • El modelo orientado a objetos evita la redundancia en los procesos luego los códigos son más entendibles y resumidos. • La integridad que dan los objetos a los datos evita ambigüedades en su uso, dando mayor seguridad en los resultados. • El modelo orientado a objetos facilita la integridad de módulos que hallan sido realizados por separado sin correr riesgos en el manejo de los datos.
  • 24.
    Qué es unobjeto • Los objetos son como los tipos abstractos de datos. • Un objeto es una colección de datos, junto con las funciones asociadas, utilizadas para operar sobre esos datos. • La potencia real de los objetos reside en las propiedades que soportan: herencia, encapsulación (o encapsulamiento) y polimorfismo junto con los conceptos de objetos, clases, métodos y mensajes. • Los humanos pensamos en términos de objetos. La abstracción nos permite ver imágenes u objetos del mundo real.
  • 25.
    Qué es unobjeto
  • 26.
    Características de losObjetos • Se agrupan en tipos denominados clases. • Contienen datos internos que definen su estado actual. • Soportan ocultación de datos. (El usuario de una clase en particular no necesita saber cómo están estructurados los datos dentro de ese objeto) • Pueden heredar propiedades de otros objetos. • Pueden comunicarse con otros objetos enviando o pasando mensajes. • Tienen métodos que definen su comportamiento.
  • 28.
    Qué es unaClase • Una clase es un tipo definido por el usuario que determina las estructuras de datos y las operaciones asociadas con ese tipo. • Son como plantillas o modelos. • Cuando se construye un objeto de una clase, se crea una instancia de clase. • Instancia de clase = objeto
  • 29.
    • Una clasees la estructura de un objeto, es decir, la definición de todos los elementos de que está hecho un objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un objeto es una instancia de una clase, por lo que se pueden intercambiar los términos objeto o instancia (o incluso evento). • Una clase se compone de dos partes: • Atributos (denominados, por lo general, datos miembros): esto es, los datos que se refieren al estado del objeto • Métodos (denominados, por lo general, funciones miembros): son funciones que pueden aplicarse a objetos
  • 31.
  • 34.
    Bibliografía: • http://delta.cs.cinvestav.mx/~fraga/Charlas/o bjetos.pdf • http://es.wikipedia.org/wiki/Programaci %C3%B3n_modular • Universidad de los Andes / Proyecto CUPID2