Saltar la navegación

2.- Fundamentos de la Programación Orientada a Objetos.

Caso práctico

Imagen de una Clínica Veterinaria donde se puede apreciar al fondo un mostrar con una dependienta atendiendo a unos clientes, alrededor cajas, estantes y diversos productos para vender.
PetsitUSA Pet Sitter Directory (CC BY-SA)

Juan cuenta con la ayuda de María para desarrollar la aplicación para la Clínica Veterinaria. Lo normal es pensar en tener una aplicación de escritorio para las altas y bajas de clientes y la gestión de mascotas, y una parte web para que la clínica pueda estar presente en Internet e, incluso, realizar la venta on-line de sus productos. María tiene bastante experiencia en administración de páginas web, pero para estar capacitada en el desarrollo de aplicaciones en Java, necesita adquirir conocimientos adicionales.

Juan le explica que tienen que utilizar un método de programación que les ayude a organizar los programas, a trabajar en equipo de forma que si uno de ellos tiene que dejar una parte para que se encargue el otro, que éste lo pueda retomar con el mínimo esfuerzo. Además, interesa poder reutilizar todo el código que vayan creando, para ir más rápido a la hora de programar. Juan le explica que si consiguen adoptar ese método de trabajo, no sólo redundará en una mejor organización para ellos, sino que ayudará a que las modificaciones en los programas sean más llevaderas de lo que lo están siendo ahora.

María asiente ante las explicaciones de Juan, e intuye que todo lo entenderá mejor conforme vaya conociendo los conceptos de Programación Orientada a Objetos.

De lo que realmente se trata es de que BK Programación invierta el menor tiempo posible en los proyectos que realice, aprovechando material elaborado con el esfuerzo ya realizado en otras aplicaciones.

Diferentes formas y colores.
bellydraft (CC BY)

Dentro de las distintas formas de hacer las cosas en programación, distinguimos dos paradigmas fundamentales:

  • Programación Estructurada, se crean funciones y procedimientos que definen las acciones a realizar, y que posteriormente forman los programas.
  • Programación Orientada a Objetos, considera los programas en términos de objetos y todo gira alrededor de ellos.

Pero ¿en qué consisten realmente estos paradigmas? Veamos estos dos modelos de programación con más detenimiento. Inicialmente se programaba aplicando las técnicas de programación tradicional, también conocidas como Programación Estructurada. El problema se descomponía en unidades más pequeñas hasta llegar a acciones o verbos muy simples y fáciles de codificar. Por ejemplo, en la resolución de una ecuación de primer grado, lo que hacemos es descomponer el problema en acciones más pequeñas o pasos diferenciados:

  • Pedir valor de los coeficientes.
  • Calcular el valor de la incógnita.
  • Mostrar el resultado.

Si nos damos cuenta, esta serie de acciones o pasos diferenciados no son otra cosa que verbos; por ejemplo el verbo pedir, calcular, mostrar, etc.

Sin embargo, la Programación Orientada a Objetos aplica de otra forma diferente la técnica de programación "divide y vencerás". Este paradigma surge en un intento de salvar las dificultades que, de forma innata, posee el software. Para ello lo que hace es descomponer, en lugar de acciones, en objetos. El principal objetivo sigue siendo descomponer el problema en problemas más pequeños, que sean fáciles de manejar y mantener, fijándonos en cuál es el escenario del problema e intentando reflejarlo en nuestro programa. O sea, se trata de trasladar la visión del mundo real a nuestros programas. Por este motivo se dice que la Programación Orientada a Objetos aborda los problemas de una forma más natural, entendiendo como natural que está más en contacto con el mundo que nos rodea.

Conjunto de instrucciones que realizan operaciones sobre los datos y producen un resultado. Bajo el paradigma de la programación estructurada, un programa es una sucesión de funciones y procedimientos del sistema operativo, del propio lenguaje, o desarrolladas por el usuario.

División de un problema en dos o más subproblemas de igual tipo o similar, hasta que éstos sean lo suficientemente sencillos para resolverlos directamente.

La Programación Estructurada se centra en el conjunto de acciones a realizar en un programa, haciendo una división de procesos y datos. La Programación Orientada a Objetos se centra en la relación que existe entre los datos y las acciones a realizar con ellos, y los encierra dentro del concepto de objeto, tratando de realizar una abstracción lo más cercana al mundo real. Sin embargo ambas no son excluyentes: parte de los objetos en el paradigma orientado a objetos es implementada siguiendo los principio de la programación estructurada.

Aislar un elemento de su contexto o del resto de elementos que lo componen. Proporciona una ilusión de simplicidad con respecto al modelo subyacente, y es una característica de evolución de los lenguajes de programación, que han ido de menor a mayor nivel de abstracción.

La Programación Orientada a Objetos es un sistema o conjunto de reglas que nos ayudan a descomponer la aplicación en objetos. A menudo se trata de representar las entidades y objetos que nos encontramos en el mundo real mediante componentes de una aplicación. Es decir, debemos establecer una correspondencia directa entre el espacio del problema y el espacio de la solución. ¿Pero en la práctica esto qué quiere decir? Pues que a la hora de escribir un programa, nos fijaremos en los objetos involucrados, sus características comunes y las acciones que pueden realizar. Una vez localizados los objetos que intervienen en el problema real (espacio del problema), los tendremos que trasladar al programa informático (espacio de la solución). Con este planteamiento, la solución a un problema dado se convierte en una tarea sencilla y bien organizada.

Autoevaluación

Relaciona el término con su definición, escribiendo el número asociado a la definición en el hueco correspondiente.

Ejercicio de relacionar
Paradigma Relación Definición
Programación Orientada a Objetos. 1. Maneja funciones y procedimientos que definen las acciones a realizar.
Programación Estructurada. 2. Representa las entidades del mundo real mediante componentes de la aplicación.

Habilitar JavaScript