Curso online de Programación Orientada a Objetos – Ciberaula.




Programación orientada a objetos

Curso Online de Programación Orientada a Objetos

Metodología de la Programación

Lo primero que se preguntará es qué se entiende por metodología de la programación. Para ello, lo más directo es acudir al DRAE (Diccionario de la Real Academia de la Lengua) donde se define:

Así pues aplicado al campo de la programación sería el conjunto de métodos, herramientas que nos sirven para desarrollar programas. Cuando hablamos de herramientas nos estamos refiriendo tanto a aquellos elementos simples que nos encontramos en cualquier lenguaje de programación (tipos de datos, estructuras de control, etc) como el estudio de técnicas (algoritmos voraces, divide y vencerás, etc.) para el diseño de algoritmos. Estudio que se realiza atendiendo a criterios de eficiencia y corrección.

El estudio de algoritmos aporta por tanto al alumno una potente herramienta con la que afrontar el diseño de cualquier problema de programación no trivial. El alumno será capaz de clasificar los tipos de algoritmos más comunes y adaptarlos a su problema particular. Además dispondrán de un criterio de valoración sobre la calidad del programa. En definitiva, ganará rapidez y fluidez a la hora de resolver problemas y las soluciones propuestas serán más eficientes.

El desarrollo de programas ha sufrido una evolución desde los primeros sistemas de cálculo, implementados en grandes computadores. Aquellos sistemas enfocaban todo el esfuerzo de desarrollo en la escritura de programas que realizaban todo tipo de cálculo. Desde entonces han surgido dos grandes cambios. El primero, la aparición del modelo relacional, modelo con una fuerte base algebraica, que supuso el desarrollo y estructuración de las bases de datos. El segundo, sobre los lenguajes de programación fue la aparición de los Lenguajes orientados a objetos. La escritura de programas pasa a ser una tarea no sólo de codificación algorítmica sino también una tarea de estructuración del problema, en el que la abstracción y modelado de objetos juega un papel importante.

Se introducirá al alumno en el paradigma de la programación orientada a objetos. De esta forma será capaz de realizar programas fácilmente mantenibles, modificables y reusables.

Algorítmica

Un algoritmo (del árabe al-Khowârizmî sobrenombre del célebre matemático árabe Mohámed ben Musa) es sencillamente un método preciso para resolver automáticamente un problema. Computacionalmente un algoritmo consta de una representación de los datos que se manejan y un conjunto de pasos tales que cada uno de ellos resuelven un problema menor. Además es necesario describir el orden en el que se deben ejecutar estos pasos para poder introducirse en el ordenador.

Una forma de ver los algoritmos es pensar en una receta de cocina. Así si nosotros describimos como preparar un plato, especificando detalladamente los pasos a seguir y las proporciones necesarias de los ingredientes, estaríamos dando el algoritmo para cocinar por ejemplo un buen cordero. Sin embargo, estos pasos y proporciones han de ser exactos. No nos valdría con datos vagos del tipo 'una pizca de sal' ó 'cocer las patatas hasta que estén medio hechas'.

Un aspecto importante a la hora de hablar de algoritmos es la forma de presentación de los mismos. Así podemos distinguir dos paradigmas, funcional e imperativo.

El paradigma funcional se basa en el concepto matemático de función. Una función es una regla de correspondencia que relaciona a dos elementos en un conjunto origen y destino. Por otro lado el paradigma imperativo se basa en el modelo de computador más extendido, el llamado modelo de Von Neumann. Von Neumann define una máquina que es capaz de ejecutar una serie de instrucciones secuencialmente, una tras de otra. Estas instrucciones deben estar almacenadas en memoria principal para poder ser leídas y ejecutadas por la unidad de control. Los dispositivos periféricos nos permiten obtener los resultados e introducir datos que queremos procesar en el sistema. El paradigma imperativo permite expresar algoritmos que se realizan de acuerdo a este modo de funcionamiento.

Ahora podemos definir la algorítmica como el estudio de los algoritmos. Cuando nos encontramos ante un problema, lo más normal es que podamos aplicar distintos algoritmos. Aquí es importante decidir cuál de ellos utilizar. Necesitaremos de una serie de indicadores para establecer las características de los algoritmos. De esta forma podremos, en función de nuestras necesidades, escoger aquél que sea más eficiente, o el que requiera menos espacio o el que sea más fácil de programar. La algoritmia nos da herramientas para evaluar estas características de los algoritmos. Del mismo modo nos ayuda a diseñar nuevas soluciones para nuestros problemas.

Programación orientada a objetos

Un programa tradicional, que sigue el paradigma estructurado, se basa fundamentalmente en la ecuación de Wirth:

Algoritmos + Estructuras de Datos = Programas

Esta ecuación se interpreta como que los algoritmos y los datos se tratan por separado. De esta forma las funciones o procedimientos que tratan estos datos los van procesando y pasando de unos a otros hasta obtener el resultado deseado.

La programación orientada a objetos gira entorno al concepto de objetos. Así un objeto es una entidad que tiene unos atributos particulares, los datos, y unas formas de operar sobre ellos, los métodos o procedimientos. Durante la ejecución, los objetos reciben y envían mensajes a otros objetos para realizar las acciones requeridas.

Esta definición resulta incompleta, pues se trata la definición de un TAD (Tipo Abstracto de Datos). Un TAD encapsula un tipo definido por el usuario junto con las operaciones sobre estos datos, realizando un proceso de abstracción, en el que se trata de ocultar los detalles y agrupar características comunes para facilitar su uso y comprensión. La diferencia entre el concepto de TAD y el de objeto radica en que además del proceso de abstracción que se utiliza para su definición, existen otros dos con los que se forma el núcleo principal de la programación orientada a objetos, la herencia y el polimorfismo.



Nombre:

Email:

Comentario: