INSTITUTO TECNOLÓGICO
SUPERIOR DE ACAYUCAN
MATERIA: INTRODUCCIÓN A LA
PROGRAMACIÓN
UNIDAD: 2 EL LENGUAJE Y SU ENTORNO
INTEGRADO DE DESARROLLO
PROFESORA: LIZETH VÁZQUEZ SATURNINO
CARRERA: ING. ELECTROMECÁNICA
SEMESTRE: PRIMERO
NOMBRE: RICARDO GOMEZ JUAREZ
FECHA: 23/11/2022
CIUDAD: ACAYUCAN, VER.
ÍNDICE
Introducción ..........................................................................................3
Paradigma de programación ...............................................................4
Programación estructurada .................................................................5
Características de la programación estructurada ...............................6
Estructuras básicas .............................................................................7
Programación orientada a los objetos ...............................................8
Principios de la programación orientada a los objetos ........................8
Etapas de la programación orientada a los objetos ..........................10
Cuadro comparativo de programación estructurada y orientada a
los objetos ...........................................................................................12
Conclusión...........................................................................................13
Fuentes bibliográficas:.......................................................................14
Introducción
Los paradigmas de programación son la forma, que determina los métodos y las
herramientas que un programador usara en la construcción de un software.
Mayormente los leguajes de programación están basados en uno o más paradigmas
que se les puede llamar multiparadigmas.
Existen varios tipos de paradigmas, pero solo veremos dos que son; forma
estructurada y orientada a objetos, cada una de ellas tiene su propio enfoque y son
muy diferentes una de otra.
Presentare en que consiste cada una de ellas, las características que tiene, sus
ventajas y al final presentare un cuadro comparativo para tener una mayor idea se
que es cada una y para que es lo que sirve o cómo se puede utilizar.
Paradigma de programación
Un paradigma de programación es una manera o estilo de programación de
software. Existen diferentes formas de diseñar un lenguaje de programación y varios
modos de trabajar para obtener los resultados que necesitan los programadores.
Se trata de un conjunto de métodos sistemáticos aplicables en todos los niveles del
diseño de programas para resolver problemas computacionales.
Se denominan paradigmas de programación a las formas de clasificar los lenguajes
de programación en función de sus características. Los idiomas se pueden clasificar
en múltiples paradigmas.
Algunos paradigmas se ocupan principalmente de las implicancias para el modelo
de ejecución del lenguaje, como permitir efectos secundarios o si la secuencia de
operaciones está definida por el modelo de ejecución. Otros paradigmas se refieren
principalmente a la forma en que se organiza el código, como agrupar un código en
unidades junto con el estado que modifica el código. Sin embargo, otros se
preocupan principalmente por el estilo de la sintaxis y la gramática.
Los paradigmas de programación comunes incluyen:
imperativo en el que el programador instruye a la máquina cómo cambiar su estado,
procedimental que agrupa las instrucciones en procedimientos,
orientado a objetos que agrupa las instrucciones con la parte del estado en el que
operan,
declarativo en el que el programador simplemente declara las propiedades del
resultado deseado, pero no cómo calcularlo
funcional en el que el resultado deseado se declara el valor de una serie de
aplicaciones de función,
lógico en la que el resultado deseado se declara la respuesta a una pregunta sobre
un sistema de hechos y reglas,
matemático en el que el resultado deseado se declara la solución de un problema
de optimización
reactivo en el que se declara el resultado deseado con flujos de datos y la
propagación del cambio
Las técnicas simbólicas como la reflexión, que permiten que el programa se refiera
a sí mismo, también pueden ser consideradas como un paradigma de
programación. Sin embargo, esto es compatible con los principales paradigmas y,
por lo tanto, no es un paradigma real por derecho propio.
Programación estructurada
La programación estructurada es una teoría orientada a mejorar la claridad, calidad
y tiempo de desarrollo utilizando únicamente subrutinas o funciones. Basada en el
teorema del programa estructurado propuesto por Böhm y Jacopini, ha permitido
desarrollar software de fácil comprensión.
La programación estructurada es una corriente que nació con la vocación de facilitar
la vida de los programadores, sobre todo cuando estos debían abordar fases de
mejora posteriores a la creación del programa, y de ordenar la forma en la que se
creaba cualquier tipo de programa.
A finales de los años 1970 surgió una nueva forma de programar que daba lugar a
programas más legibles, fiables y eficientes. Se basaban en el teorema del
programa estructurado, propuesto por Böhm-Jacopini, que demuestra que todo
programa puede escribirse utilizando únicamente las tres estructuras de control
siguientes:
Estructura secuencial. Está formada por una secuencia de llamadas a instrucciones
del lenguaje o funciones del programador.
Estructura condicional. Es aquella que ejecuta una estructura si se cumple una
condición booleana.
Estructura iterativa con condición. Es aquella que ejecuta una estructura una y otra
vez si se cumple una condición booleana.
Solamente con estas tres estructuras se pueden escribir todos los programas y
aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor
repertorio de estructuras de control.
En la programación estructurada los 3 tipos de estructuras mencionadas no
aparecen de forma aislada, sino que unas aparecen "en el interior" (o anidada) de
cualquiera de ellas. Por ejemplo, lo normal es que una estructura secuencia
aparezca "anidada" en una condicional o una iterativa, o es muy usual que una
iterativa aparezca "anidada" en otra iterativa.
Estas estructuras y sus "anidamientos" no son nuevos para tí. Ya se introdujo este
aspecto al hablar de "Resolución de Problemas con Ordenador" y se daban algunas
recomendaciones sobre cómo s debe expresar un algoritmo, donde destacamos: se
deberán de utilizar verbos en infinitivo, las expresiones si-entonces y mientas-hacer.
Estas expresiones se corresponden con las estructuras de control secuencial,
condicional e iterativa, respectivamente.
Características de la programación estructurada
El teorema del programa estructurado es la base teórica sobre la que se construyó
esta nueva forma de programar, ya que nos da la característica fundamental de la
programación estructurada. Postula que, simplemente con la combinación de tres
estructuras básicas, es suficiente para expresar cualquier función computable.
Los programas desarrollados con la programación estructurada son más sencillos
de entender, ya que tienen una estructura secuencial y desaparece la necesidad de
rastrear los complejos saltos de líneas (propios de la sentencia Goto) dentro de los
bloques de código para intentar comprender la lógica interna.
Como consecuencia inmediata de lo anterior, otra ventaja es que los programas
resultantes tendrán una estructura clara, gracias a que las sentencias están ligadas
y relacionadas entre sí.
La fase de prueba y depuración de los programas se optimiza, ya que es mucho
más sencillo hacer el seguimiento de los fallos y errores y, por tanto, detectarlos y
corregirlos.
El coste del mantenimiento de los programas que usan la programación
estructurada es más reducido. ¿Por qué? Pues porque modificar o extender los
programas es más fácil al estar formados por una estructura secuencial.
Al ser más sencillos los programas, son más rápidos de crear y los programadores
aumentan su rendimiento.
Estructuras básicas
Secuencia. La estructura secuencial es la que se da de forma natural en el lenguaje,
porque las sentencias se ejecutan en el orden en el que aparecen en el programa,
es decir, una detrás de la otra.
Selección o condicional. La estructura condicional se basa en que una sentencia
se ejecuta según el valor que se le atribuye a una variable booleana. Una variable
booleana es aquella que tiene dos valores posibles. Por tanto, esta estructura se
puede ejecutar de dos formas distintas, dependiendo del valor que tenga su
variable.
Iteración (ciclo o bucle). La estructura de repetición ejecuta una o un conjunto de
sentencias siempre que una variable booleana sea verdadera. Para los bucles o
iteraciones, los lenguajes de programación usan las estructuras while y for.
Programación orientada a los objetos
La programación Orientada a objetos se define como un paradigma de la
programación, una manera de programar específica, donde se organiza el código
en unidades denominadas clases, de las cuales se crean objetos que se relacionan
entre sí para conseguir los objetivos de las aplicaciones.
Podemos entender la programación Orientada a objetos (POO) como una forma
especial de programar, más cercana a como expresaríamos las cosas en la vida
real que otros tipos de programación, que permite diseñar mejor las aplicaciones,
llegando a mayores cotas de complejidad, sin que el código se vuelva inmanejable.
Al programar orientado a objetos tenemos que aprender a pensar cómo resolver los
problemas de una manera distinta a como se realizaba anteriormente, en la
programación estructurada. Ahora tendremos que escribir nuestros programas en
términos de clases, objetos, propiedades, métodos y otras cosas que veremos
rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos
un poco con los conceptos de este tipo de programación.
Principios de la programación orientada a los objetos
La encapsulación
La encapsulación presenta toda la información importante de un objeto dentro del
mismo y solo expone la información elegida al mundo exterior.
Esta propiedad permite asegurar que la información de un objeto esté oculta para
el mundo exterior, agrupando en una clase las características o atributos que tienen
un acceso privado, y los comportamientos o métodos que cuenta con un acceso
público.
La encapsulación de cada objeto es responsable tanto de su información y de su
estado. El único modo en la que esta se puede modificar es a través los propios
métodos del objeto. De esta manera, los atributos internos de un objeto son ser
inaccesibles desde fuera, pudiéndose modificar sólo llamando a las funciones
correspondientes. Así se consigue mantener el estado a salvo de usos indebidos o
que puedan resultar inesperados.
Para explicar la encapsulación usaremos un coche de ejemplo. El coche comparte
información pública mediante las luces de freno o intermitentes para indicar los giros
(interfaz pública). Por contra, la interfaz interna, el mecanismo propulsor del coche,
está oculto bajo el capó. Al conducir un automóvil es necesario indicar a otros
conductores los movimientos, pero no exponer datos privados sobre el tipo de
combustible o la temperatura del motor, ya que son muchos datos, lo que
confundiría a los demás conductores.
La abstracción
Otro de los principios de la Programación Orientada a Objetos es la abstracción,
que se produce cuando el usuario interactúa solo con los atributos y métodos
seleccionados de un objeto, usando herramientas simplificadas de alto nivel para
acceder a un objeto complejo.
En la POO, los programas suelen ser muy grandes y los objetos se comunican
bastante entre sí. De este modo, la abstracción facilita el mantenimiento de un
código de gran tamaño, donde pueden surgir distintos cambios con el paso del
tiempo.
Así, la abstracción está basada en utilizar cosas simples para representar la
complejidad. Los objetos y las clases representan código subyacente, ocultando los
detalles complejos al usuario. Por ende, se trata de una extensión de la
encapsulación. Continuando con el ejemplo anterior, no es necesario que conozcas
todos los detalles sobre cómo funciona el motor de un coche para poder conducirlo.
La herencia
La herencia define relaciones jerárquicas entre clases, de modo que atributos y
métodos comunes puedan ser reutilizados. Las clases principales extienden
atributos y comportamientos a las clases secundarias. Mediante la definición en una
clase de los atributos y comportamientos básicos, pueden crearse clases
secundarias, ampliando la funcionalidad de la clase principal y añadiendo atributos
y comportamientos extra. Es una de las claves de la Programación Orientada a
Objetos.
Siguiendo el ejemplo de los animales, puede emplearse una única clase de animal
y añadir un atributo de tipo de animal que especifique el tipo de animal. Los distintos
tipos de animales requerirán diferentes métodos, por ejemplo, los reptiles deben
poder poner huevos y los peces nadar. Incluso si los animales disponen de un
método en común, como moverse, la implementación requeriría muchas
declaraciones “si” para garantizar el comportamiento de movimiento idóneo. Por
ejemplo, las ranas saltan, mientras que las serpientes se deslizan. El principio de
herencia permite solucionar dicho problema.
El polimorfismo
El polimorfismo reside en diseñar objetos para compartir comportamientos, lo que
permite procesar objetos de distintos modos. Es la capacidad de presentar la misma
interfaz para distintas maneras subyacentes o tipos de datos. Al usar la herencia,
los objetos pueden anular los comportamientos principales compartidos, con
comportamientos secundarios específicos. El polimorfismo permite que el mismo
método ejecute distintos comportamientos de dos modos: anulación de método y
sobrecarga de método.
Etapas de la programación orientada a los objetos
Dentro de la programación orientada a objetos, existen una serie de etapas que
deben cumplirse para poder programar un software adecuado.
Recopilación
En principio, lo primero que hará un desarrollador será recopilar los objetos que
desea manipular.
Identificación y modelado de datos
Una vez realizada esta recopilación, lo que hará será identificar el comportamiento
individual de esos objetos y cómo se relacionan entre ellos. Esta etapa se la conoce
como “modelado de datos”.
Ten en cuenta que un objeto puede contener la más variada información, es decir
que pueden ser programas como los widgets, pero también pueden tener
atribuciones de entidades físicas.
Clasificación
Cuando el programador ha identificado correctamente el objeto, lo clasifica de
acuerdo con los datos que contiene, como así también definiendo las secuencias
lógicas que pueden manipularlo.
Método y secuencias lógicas
Cada objeto puede tener diferentes secuencias lógicas para su manipulación, y
cada una de ellas es conocida con el término de “método”. Además, lo objetos
tienen la facultad de comunicarse a través de interfaces denominadas “mensajes”.
Resultado
Teniendo en cuenta esto, puedes hacer una idea de cómo es un desarrollo de
programación orientada a objetos de forma muy sencilla. Por ejemplo, en
aplicaciones visuales suelen disponer de botones, cuadros de diálogo y demás.
Pero, además, cada objeto contiene su propio código específico. A través de dicho
código se establece el comportamiento y el uso de ese objeto.
Cuadro comparativo de programación estructurada y orientada
a los objetos
Programación estructurada Programación orientada a
objetos
Definición La programación estructurada es La programación orientada a
una teoría orientada a mejorar la objetos es un paradigma de
claridad, calidad y tiempo de programación que parte del
desarrollo utilizando únicamente concepto de "objetos" como base,
subrutinas o funciones. Basada en el los cuales contienen información en
teorema del programa estructurado forma de campos y código en forma
propuesto por Böhm y Jacopini, ha de métodos.
permitido desarrollar software de
fácil comprensión.
Características La programación estructurada es el Esta basado en varias técnicas,
conjunto de técnicas que incorporan: incluyendo herencia, modularidad,
- Recursos abstractos polimorfismo y encapsulamiento.
- Diseño descendente Se basa en objetos del mundo real
- Estructuras básicas
ventajas Los programas desarrollados con la -Fomenta la reutilización y
programación estructurada son más ampliación del código.
sencillos de entender, ya que tienen -Permite crear sistemas más
una estructura secuencial y complejos.
desaparece la necesidad de rastrear -La programación se asemeja al
los complejos saltos de líneas mundo real.
(dentro de los bloques de código -Agiliza el desarrollo de software.
para intentar comprender la lógica -Facilita el trabajo en equipo.
interna.
Desventajas Se obtiene un único bloque de Dado que el programa aumenta de
programa, que cuando se hace tamaño, requiere más tiempo para
demasiado grande puede resultar ejecutarse, lo que conduce a una
problemático su manejo ejecución más lenta del programa.
Historia A finales de los años 1970 surgió una La POO es un paradigma surgido
nueva forma de programar que no en los años 1970, que utiliza
solamente permitía desarrollar objetos como elementos
programas fiables y eficientes, sino fundamentales en la construcción
que además estos estaban escritos de la solución.
de manera que se facilitaba su
comprensión en fases de mejora
posteriores.
Conclusión
Podemos decir que los paradigmas en la programación se pueden definir como la
forma de pensar de cada individuo ya que sería muy difícil encontrar a una persona
con el mismo paradigma que nosotros ya que esa persona podría tener otra forma
de ver la resolución del problema ya que es un modelo o patrón.
La programación estructurada es eficiente para programas sencillos y de pocas
líneas, pero presenta problemas cuando los programas son grandes porque solo
maneja un bloque, pero si es muy útil para ir aprendiendo.
La Programación Orientada a Objetos es actualmente el paradigma que más se
utiliza para diseñar aplicaciones y programas informáticos. Son muchas sus
ventajas, principalmente cuando necesitas resolver desafíos de programación
complejos.
Fuentes bibliográficas:
colaboradores de Wikipedia. (2022, 14 octubre). Paradigma de programación.
Wikipedia, la enciclopedia
libre. [Link]
Canelo, M. M. (2020, junio 9). ¿Qué son los paradigmas de programación? Profile
Software Services. [Link]
programacion/
Grupo Docente ISCyP. (s/f). Programación Estructurada. [Link]. Recuperado
el 24 de noviembre de 2022, de [Link]
[Link]
Marker, G. (2022, febrero 16). ¿Qué es programación orientada a
objetos? Tecnología + Informática; Tecnología+Informatica. [Link]
[Link]/que-es-programacion-orientada-objetos/