Download Lógica de la Programación

Document related concepts

Polimorfismo (informática) wikipedia , lookup

Objeto inmutable wikipedia , lookup

Axiom wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Transcript
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