0% encontró este documento útil (0 votos)
78 vistas7 páginas

CT 1.1 Paradigmas

Este documento describe el paradigma de programación orientada a eventos. Explica que este paradigma evolucionó del paradigma orientado a objetos y se basa en reaccionar a eventos en lugar de seguir una secuencia de instrucciones. También clasifica los diferentes paradigmas de programación en imperativos y declarativos, e identifica a la programación orientada a eventos como un enfoque subordinado al paradigma imperativo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
78 vistas7 páginas

CT 1.1 Paradigmas

Este documento describe el paradigma de programación orientada a eventos. Explica que este paradigma evolucionó del paradigma orientado a objetos y se basa en reaccionar a eventos en lugar de seguir una secuencia de instrucciones. También clasifica los diferentes paradigmas de programación en imperativos y declarativos, e identifica a la programación orientada a eventos como un enfoque subordinado al paradigma imperativo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

M2S2: Aplica la metodología de Desarrollo Rápido de Aplicaciones con Programación

Orientada a Eventos

Secuencia I: Identifica los elementos del paradigma de la Programación Orientada a Eventos

1.1 Paradigmas de programación

Paradigma

Analiza la siguiente historia:

Un grupo de científicos colocó cinco monos en una jaula, en cuyo centro


colocaron una escalera y, sobre ella, un montón de bananas. Cuando un mono
subía la escalera para agarrar las bananas, los científicos lanzaban un chorro
de agua fría sobre los que quedaban en el suelo. Después de algún tiempo, cuando
un mono iba a subir la escalera, los otros lo golpeaban.

Pasado algún tiempo más, ningún mono subía la escalera, a pesar de la tentación de las
bananas. Entonces los científicos sustituyeron uno de los monos. La primera cosa que hizo
el nuevo mono fue subir la escalera, siendo rápidamente bajado por los otros, quienes le
acomodaron tremenda paliza. Después de algunas palizas el nuevo integrante del grupo
ya no subió más la escalera, aunque nunca supo el porqué de tales golpizas.

Un segundo mono fue sustituido, y ocurrió lo mismo. El primer sustituto participó


con entusiasmo de la paliza al novato. Un tercero fue cambiado, y se repitió el hecho,
lo volvieron a golpear. El cuarto y, finalmente, el quinto de los veteranos fue
sustituido. Quedó, entonces, un grupo de cinco monos que, aun cuando nunca
recibieron un baño de agua fría, continuaban golpeando a aquel que intentase llegar
a las bananas.

Lee con atención cada cuestionamiento, y en binas contesten:

1. ¿Por qué creen que el grupo de los cinco monos, aun cuando nunca recibieron un baño de
agua fría, continuaban golpeando a aquel que intentase llegar a las bananas? Justifiquen su
respuesta.
2. A partir de lo sucedido en la historia ¿Cómo definirían la palabra paradigma?
3. A partir de su definición de paradigma ¿Cómo definirían un paradigma de programación?
4. ¿Por qué consideran que existen diferentes paradigmas de programación?
5. ¿Con base en qué un programador puede elegir un paradigma de programación u otro para
solucionar un problema?
Con los integrantes de tu mesa de trabajo realiza lo siguiente:
1. Analicen los subtemas que se presentan a continuación
2. Organicen una exposición sobre su contenido considerando el diseño de una representación gráfica
(mapa mental o cuadro sinóptico) pudiendo ser en computadora, lámina o papel bond.
3. Elaboren un instrumento de evaluación para valorar la exposición del trabajo de otro equipo que les
será asignado.

Paradigmas de programación

A lo largo de la historia de las ciencias de la computación han ido surgiendo herramientas, reglas,
conceptos y otros elementos que permitieron la creación de los más variados lenguajes de
programación. Algunos nacieron y al poco tiempo desaparecieron, mientras que otros hace años ya
que se diseñaron y siguen vigentes. Muchos se fueron adaptando y renovándose para subsistir y se
vuelven casi irreconocibles de sus orígenes y en cambio otros permanecen fieles a sus principios
fundantes y casi inalterables. Los equipos, las metodologías y los campos de aplicación se
transformaron radicalmente.

Si Von Neumann1 se sentara frente a las computadoras de última generación se sentiría tan perdido
como el inventor de la rueda al volante de un fórmula 1. Sin embargo, es probable que, así como
el conductor constataría que el vehículo sigue teniendo ruedas o preguntaría cómo hacen ahora para
hacerla girar, los desarrolladores de software de otras épocas no dudarían en preguntar... ¿y cómo
es la entrada de datos? ¿cómo los representan? Y la respuesta de un programador de esta época
sería “A.…según el paradigma de programación que se utilice”.

Si algo caracteriza al panorama actual del desarrollo de sistemas es su complejidad y diversidad.


No existe una sola forma de pensar y encarar las soluciones, no son uniformes los conceptos que
fundamentan los lenguajes, no es única la manera de programar. De esta manera, tiene sentido
hablar de la existencia de diferentes “paradigmas de programación” que aportan los
fundamentos teóricos y conceptuales para desarrollar sistemas de una manera en particular, incluso
podríamos decir con una “filosofía” especial, que los caracterizan, identifican y a la vez diferencian
de los otros paradigmas.

Un paradigma es:
Todo aquel modelo, patrón o ejemplo que debe seguirse en determinada situación. Es una teoría
que sirve de modelo a seguir para resolver problemas.

Un paradigma de programación es:


Un modelo básico de diseño e implementación de programas. Es la forma en que un programador
da solución a uno o varios problemas definidos, es decir, un método o estilo documentado para
programar.

1. Von Neumann fue pionero de las Ciencias de la Computación, quien hizo importantes contribuciones al desarrollo del diseño
lógico o de programación.
En otras palabras, es una colección de modelos conceptuales que juntos modelan el proceso de
diseño, orientan la forma de pensar y solucionar los problemas y, por lo tanto, determinan la
estructura final de un programa.

Existen diferentes paradigmas de programación y se diferencian unos de otros debido a la forma


de abordar los elementos involucrados en el problema, así como en los pasos necesarios para llegar
a su solución. Cada paradigma se vincula con ciertos lenguajes de programación, ya que éstos
adoptan uno o varios paradigmas en función del tipo de órdenes que permiten implementar.

Clasificación de los paradigmas de programación

A los paradigmas se los podría clasificar de diversas maneras según los criterios que se prioricen.
Pero partiendo de los principios fundamentales de cada paradigma en cuanto a las orientaciones
sobre la forma para construir las soluciones a través de un programa, podemos distinguir entre los
imperativos y los declarativos.

1) Paradigma Imperativo. Se trata del paradigma clásico de programación. Indica el modo


de construir la solución, es decir detalla paso a paso el mecanismo para obtenerla. Se
basan en “cómo” lograr la solución.

La característica fundamental de este paradigma es la secuencia computacional realizada etapa a


etapa para resolver el problema. Los programas realizados con lenguajes imperativos deben incluir
en su codificación las instrucciones de control para determinar el flujo de la ejecución, como
decisiones, iteraciones y otras, conformando, de esta manera, diferentes “algoritmos”.

Utilizan un modelo en el que las variables están estrechamente relacionadas con direcciones de la
memoria del ordenador. Cuando se ejecuta el programa, el contenido de estas direcciones se
actualiza repetidamente, pues las variables reciben múltiples asignaciones, y al finalizar el trabajo,
los valores finales de las variables representan el resultado.

Dentro de la Programación Imperativa podemos encontrar diferentes enfoques subordinados


a este paradigma, como lo son:

A. Paradigma de Programación Estructurada


B. Paradigma de Programación Procedimental
C. Paradigma de Programación Orientado a Objetos
D. Paradigma de Programación Orientado a Eventos (como evolución del Paradigma
Orientado a Objetos)
A. Paradigma de Programación Estructurada
Este paradigma debe su nombre al papel dominante que desempeñan las sentencias imperativas, es
decir aquellas que indican realizar una determinada operación que modifica los datos guardados en
memoria.
Su esencia es resolver un problema complejo mediante la ejecución repetitiva y paso a paso de
operaciones y cálculos sencillos con la asignación de los valores calculados a posiciones de
memoria. La programación en este paradigma consiste en determinar qué datos son requeridos para
el cálculo, asociar a esos datos una dirección de memoria, y efectuar, paso a paso, una secuencia
de transformaciones en los datos almacenados, de forma que el estado final represente el resultado
correcto.

Entre las principales características que indican que un problema se resuelve a través de este
paradigma, tenemos:

➢ Uso de celdas de memoria o variables


➢ Cada valor calculado es asignado en una variable
➢ Requiere la construcción de algoritmos
➢ Las instrucciones se leen de arriba hacia abajo, es decir órdenes consecutivas
➢ Se controla el flujo de los datos mediante el uso de estructuras de control secuenciales,
condicionales y cíclicas o repetitivas

Existen numerosos lenguajes que utilizan este paradigma, como PASCAL, C, FORTRAN,
ALGOL, COBOL, ADA, CLIPPER, FOX, PL/1, etc. Muchos de ellos incluyen extensiones que
permiten soportar otros paradigmas, en mayor o menor grado, como el caso de C++; no obstante,
sigue predominando en ellos el modelo de paradigma estructurado.

B. Paradigma de Programación Procedimental


En la programación procedimental se divide el código en partes más pequeñas y manejables
llamadas procedimientos o funciones. De esta manera se consigue que el código sea más claro y
que no sean necesarias las repeticiones de código, esto gracias a las llamadas a las funciones y
procedimientos. Cuando los programas se vuelven más grandes, la lista de instrucciones aumenta
considerablemente, de modo tal que el programador tiene muchas dificultades para controlarlas.

Para resolver este problema los programas se descomponen en unidades más pequeñas que adoptan
el nombre de funciones, también llamadas métodos, procedimientos, subprogramas, subrutinas.
Cada función tiene un propósito bien definido y resuelve una tarea concreta; se diseña una interfaz
claramente definida para su comunicación con otras funciones. Cualquier función o procedimiento
puede ser llamado en cualquier punto durante la ejecución de un programa.

Los lenguajes de programación que utilizan este paradigma son: Python, C, C#, Basic, Cobol,
Pascal, Matlab.
C. Paradigma de Programación Orientado a Objetos
El paradigma de objetos, o como se lo conoce generalmente, la Programación Orientada a Objetos,
se fundamenta en concebir a un sistema como un conjunto de entidades que representan al mundo
real, los “objetos”, que tienen distribuida la funcionalidad e información necesaria y que cooperan
entre sí para el logro de un objetivo común. En otras palabras, el paradigma de objetos pretende:

• Desarrollar los sistemas con modelos más cercanos a la realidad que a las especificaciones
computacionales.
• Construir componentes de software que sean reutilizables.
• Diseñar una implementación de manera que puedan ser extendidos y modificados con el mínimo
impacto en el resto de su estructura.

Si bien los desarrollos hechos en otros paradigmas también pueden tener estas características, el
Paradigma de Objetos no sólo provee herramientas para que sea más sencillo de lograr, sino que
las considera como intrínsecas de la configuración de sus lenguajes. A su vez, no se descarta las
propiedades procedimentales que tienen que ver, por ejemplo, con la asignación en memoria o la
utilización de estructuras de control para determinar el flujo de secuencia, sino que, manteniendo
sus propiedades procedimentales, utiliza estas herramientas dentro de otras más amplias y potentes
que lo caracterizan como paradigma.

Entre las principales características que indican que un problema se resuelve a través de este
paradigma orientado a objetos, tenemos:

➢ Estructura de desarrollo modular basada en objetos, que son definidos a partir de clases,
como implementación de tipos abstractos de datos.
➢ Encapsulamiento como forma de abstracción que separa las interfaces de las
implementaciones de la funcionalidad del sistema (métodos) y oculta la información
(variables).
➢ Mecanismo de envío de mensajes, que posibilita la interacción entre los objetos y permite
la delegación de responsabilidades de unos objetos a otros.
➢ Polimorfismo, basado en el enlace dinámico, de forma que las entidades del programa
puedan referenciar en tiempo de ejecución a objetos de diferentes clases.
➢ Herencia, que permite que una clase sea definida como una extensión o modificación de
otra.

El lenguaje originario y paradigmático de la programación en objetos es SMALLTALK.


Actualmente existen otros lenguajes más conocidos, como JAVA. Hay también algunos lenguajes
como el C++ o el EIFFEL y VISUAL BASIC que son extensiones de otros lenguajes que fueron
diseñados básicamente como imperativos, pero que tienen extensiones que incorporan, en mayor o
menor medida, los principios del paradigma de objetos.
D. Paradigma de Programación Orientado a Eventos (como evolución del Paradigma de
Programación Orientado a Objetos)
En la Programación Orientada a Eventos el programador deberá definir los sucesos que dirigirán
el programa y las acciones que se desencadenarán como consecuencia de dichos sucesos.
Al ejecutarse el programa se llevan a cabo primero las inicializaciones, y el programa quedará en
espera hasta que se produzca algún evento. Cuando se produzca el evento el programa ejecutará el
código del correspondiente administrador de evento.

Un evento es una acción que es reconocida por un objeto y que normalmente es provocada por
el usuario al interactuar con la interfaz del programa (la pulsación de un botón del ratón, la
pulsación de una tecla, etc.). Muchos objetos tienen predefinidos un conjunto de eventos que
pueden reconocer, si uno de ellos ocurre, se ejecuta un manejador de evento (función) como
respuesta, por lo tanto, una aplicación para el sistema operativo en realidad lo que hace es ejecutar
funciones para tratar los distintos eventos que se vayan produciendo.

De ahí viene la analogía con la Programación Orientada a Objetos y el que se considere como una
evolución de ella; en un sistema dirigido por eventos, los componentes prediseñados que usamos
pueden verse como objetos, pues tienen una serie de propiedades o atributos y un conjunto
claramente definido de funciones miembro o métodos.

Entre las principales características que indican que un problema se resuelve a través de este
paradigma orientado a eventos, tenemos:

➢ Uso de herramientas que permitan realizar diseños gráficos


➢ Uso de lenguajes de alto nivel que permitan codificar los eventos
➢ Uso de objetos que tienen predefinidos eventos
➢ Uso de componentes o controles dentro de formularios

Para la Web se utiliza javascript, para escritorio Windows: Visual Basic y Visual C++, para
escritorio Windows y Web: Visual Basic y C#.
2) Paradigma Declarativo. Describe las características que debe tener la solución. Es decir,
especifica “qué” se desea obtener, pero no requiere indicar “cómo” obtenerla.

A medida que el hardware evoluciona con el paso del tiempo, el software también experimenta un
proceso de mejora y cambio, apareciendo un paradigma alternativo de programación, la
declarativa. En este tipo de programación se describe el resultado final que se busca, siendo más
importante lo que se persigue que cómo se consigue. Este tipo de programación declarativa tiene
un alto grado de abstracción, lo que hace que su código sea más difícil de comprender.

Dentro de la Programación Declarativa podemos encontrar diferentes enfoques subordinados


a este paradigma, como lo son:

A. Funcional
El código de los programas funcionales está dividido en una serie de funciones, que reciben datos,
operan con ellos y devuelven un valor de salida. Este tipo de programación es ideal para crear
algoritmos para resolución de complejos problemas (inteligencia artificial o aplicaciones técnicas
y matemáticas).
Ejemplo de lenguajes de programación que utilizan este paradigma, son: Scala, LISP o F#

B. Lógica
La programación lógica o predictiva está basada en la lógica matemática, siguiendo una serie de
principios basados en hechos y suposiciones. Aplica reglas de la lógica matemática para ir
resolviendo los problemas a los que se enfrenta. Ejemplo de lenguajes de programación que utilizan
este paradigma, son: Haskell, Prolog o JavaScript.

Hemos hablado sobre qué son los paradigmas de programación y los distintos tipos que existen.
Hoy en día es habitual que los desarrolladores y programadores trabajen con diferentes lenguajes
de programación, abrazando con ello diferentes paradigmas. Los distintos paradigmas son útiles
para resolver diferentes tipos de problemas, por lo que no es posible decir si uno es mejor que otro,
ya que depende del proyecto de programación y problema al que se haga frente.

A la hora de programar será necesario aprender distintos lenguajes de programación que están
basados en diferentes paradigmas o formas de afrontar y resolver los problemas.

Fuente de información

Spigariol, L. (2005). Fundamentos teóricos de los Paradigmas de Programación. Facultad Regional Buenos Aires, Universidad
Tecnológica Nacional. Buenos Aires, Argentina.

También podría gustarte