Clase 2 POO

34
Programación Orientada a Objetos Esp. Leonardo Bernal Zamora

Transcript of Clase 2 POO

Page 1: Clase 2 POO

Programación Orientada a Objetos

Esp. Leonardo Bernal Zamora

Page 2: Clase 2 POO
Page 3: Clase 2 POO
Page 4: Clase 2 POO

Clasificación del SoftwareSistemas Operativos

1. Multitarea2. Multiusuario3. Multiproceso4. Línea Comando5. Interfaz Gráfica

Windows, Unix

Unix

Unix

MS DOS

Windows, Macintosh

Lenguajes de Programación

1. Bajo Nivel2. Nivel Medio3. Alto Nivel

Ensamblador

Visual Basic, C

Aplicación De Uso General

Aplicación De Uso Especifico

Desarrollados a la Medida.

1. Proc. Textos2. Hoja Cálculo3. Base datos4. Presentación

Word

Excel

Acces, SQL server

Power point

1. Antivirus2. Compresores3. Diseño. Etc.

Autocad, Corel, Flash, etc.

Nominas , Inventarios, etc.

Sistemas de Bancos

Page 5: Clase 2 POO

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

Según su Nivel de Abstracción

Page 6: Clase 2 POO

Categorías de los Lenguajes de Programación

Page 7: Clase 2 POO

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

Page 8: Clase 2 POO

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:

Categorías de los Lenguajes de Programación

Page 9: Clase 2 POO

Línea de tiempo histórica de los lenguajes de programación.

Page 10: Clase 2 POO

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.

Page 11: Clase 2 POO

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 naturalesEsta 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.

Page 12: Clase 2 POO

Evolución de la programaciónEvolución de la programación

Page 13: Clase 2 POO

Evolución de la programaciónEvolución de la programación

Programación linealProgramación ModularProgramación EstructuradaProgramación Orientada a

Objetos

Page 14: Clase 2 POO

Programación linealProgramació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

Page 15: Clase 2 POO

Programación ModularProgramació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.

Page 16: Clase 2 POO

Programación EstructuradaProgramació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.

Page 17: Clase 2 POO

Programación Orientada a Programación Orientada a Objetos ( POO , OOP)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.

Page 18: Clase 2 POO

• 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.

Page 19: Clase 2 POO

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.

Page 20: Clase 2 POO

http://www.crysfel.com/common/ejemplos/conceptosPoo/tns.jpg

Page 21: Clase 2 POO

Ventajas de POOVentajas de POOLa 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.

Page 22: Clase 2 POO

Ventajas de POO (Cont)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.

Page 23: Clase 2 POO

Ventajas del Modelo orientado a objetos Ventajas del Modelo orientado a objetos con respecto al modelo con respecto al modelo estructurado: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.

Page 24: Clase 2 POO

Qué es un objetoQué 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.

Page 25: Clase 2 POO

Qué es un objetoQué es un objeto

Page 26: Clase 2 POO

Características de los ObjetosCaracterí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.

Page 27: Clase 2 POO
Page 28: Clase 2 POO

Qué es una ClaseQué 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

Page 29: Clase 2 POO

• 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

Page 30: Clase 2 POO
Page 31: Clase 2 POO

www.oscarsotorrio.com/2008/10/default

Page 32: Clase 2 POO
Page 33: Clase 2 POO
Page 34: Clase 2 POO

Bibliografía:

• http://delta.cs.cinvestav.mx/~fraga/Charlas/objetos.pdf

• http://es.wikipedia.org/wiki/Programaci%C3%B3n_modular

• Universidad de los Andes / Proyecto CUPID2