Lógica de la Programación Ing. M.Sc. Javier Antonio Ballesteros Ricaurte Evolución de la programación • • • • • 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 lineal Programación Modular Programación Estructurada Programación Orientada a Objetos Programación Orientada a Agentes 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. 1 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 POO • 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. Ventajas 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. • 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. 2 Ventajas del Modelo OO 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. 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 3 • 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 Bibliografía • http://delta.cs.cinvestav.mx/~fraga/Charlas/objetos.pdf • http://es.wikipedia.org/wiki/Programaci%C3%B3n_modul ar • Universidad de los Andes / Proyecto CUPID2 4