Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIÓN
Módulo 2 – Unidad 2
1
UNIDAD 2. TIPOS DE PROGRAMACIÓN ..................................................................................................... 3
2
desarrollar un software de calidad que cumpla con las expectativas del cliente en el menor
tiempo posible. En la siguiente imagen, se puede visualizar el proceso desde la generación
de la necesidad por parte del cliente hasta la entrega del producto final.
• Programación estructurada
• Programación por módulos
• Programación orientada a objetos
3
2.1 Programación estructurada
Joyanes (2008) afirma "cada sentencia o instrucción señala al compilador para que
realice alguna tarea: obtener una entrada, producir una salida, sumar tres números, dividir
por cinco” (p. 55).
2
programas se vuelven más grandes, cosa que lógicamente sucede cuando aumenta la
complejidad del problema a resolver, la lista de instrucciones aumenta
considerablemente, de modo tal que el programador tiene muchas dificultades para
controlar ese gran número de instrucciones “(p.56).
Joyanes (2008) manifiesta que existen dos motivos para que la programación
estructurada no sea eficiente en programas de gran magnitud.
Por ello, para entender lo que se menciona, se analizan algunos términos relacionados:
• Datos locales.
3
están protegidos de modificaciones por otras funciones” (Joyanes, 2008, p.55). Esto quiere
decir que este tipo de datos solo funcionan en algunos bloques de código del programa y
otras funciones o instrucciones no la pueden modificar (Ver imagen 2).
• Datos globales
“Son los datos a los cuales se puede acceder desde cualquier función del programa”
(Joyanes, 2008, p.55). Con lo expuesto, se hace mención a que todas las funciones o
instrucciones pueden modificar o acceder a este tipo de datos sin importar su disposición
dentro del programa. Cuando se utiliza esta metodología en programas grandes, se
dificulta entender la sintaxis del programa por la cantidad de funciones y datos globales
involucrados, lo cual ocasiona problemas de conexión entre ellos y al programador se le
presentan inconvenientes para entender la lógica de programación en caso de realizar
modificaciones o cambios. Por ello, se recomienda aplicar este tipo de programación para
resolver problemas pequeños.
2
Para dar respuesta al segundo problema del paradigma estructurado, Joyanes (2008)
explica que se debe entender que la separación de estas funciones y datos, generalmente,
no van acorde con lo expresado en el mundo físico, es decir en la realidad se
interrelaciona con objetos como, por ejemplo, vehículos o personas; para llevar estos
objetos a la programación, se le deben asignar atributos y comportamientos para que
cumplan una función en el programa. Para entender mejor, analizaremos el siguiente
ejemplo:
• Objeto: Persona.
• Atributos: edad, sexo, dirección, profesión, color de ojos, etc.
Joyanes (2008) afirma sobre el comportamiento “es una acción que ejecutan los
objetos del mundo real como respuesta a un determinado estímulo” (p. 55).
Por ejemplo, si se presionan los frenos de una moto, esta se detendrá. En resumen, el
comportamiento será la acción a ejecutar por el objeto y esta acción es la que recibe el
nombre función.
• Objeto: vehículo
• Atributos: marca, serial, color, año.
• Comportamiento: se detiene, acelera, se mantiene con el motor encendido.
Es muy importante tener estos términos claros para poder lograr una programación
estructurada acorde, eficiente, fácil de actualizar y de fácil mantenimiento para programas
a pequeña escala; para programas a mediana escala, se recomiendan otros paradigmas
que se describen a continuación.
3
La programación estructurada es un paradigma de programación basado en utilizar
funciones o subrutinas con únicamente tres estructuras de control:
• Secuencial: se compone de un grupo de sentencias que se irán ejecutando una detrás de
otra.
• Selección o condicional: ejecución de una sentencia o conjunto de sentencias, según el valor
de una variable.
• Iteración (ciclo o bucle): son utilizadas cuando una o varias sentencias han de ser ejecutadas
cero, una o más veces. (pág. 27)
En tal sentido, Moreno (2014) también menciona las siguientes ventajas para la
programación estructurada:
2
Imagen 4: Ejemplo de entorno de programación estructurada
Fuente: Mantilla, J. (2014). Ejemplo de un programa en C. [imagen]. Recuperado de:
http://juandiegomantillaaci220-2.blogspot.com/2014/11/ejemplo-de-un-programa-en-c.html
Aunado a lo anterior, los IDE son los siguientes tipos según Moreno (2014):
• Step into: se ejecuta la línea actual y en el caso que sea un procedimiento, método o
función la depuración continúa dentro del mismo.
• Step over: se ejecuta la línea actual y en el caso que sea un procedimiento, método o
función la depuración no continuará dentro del mismo.
• Step return: se siguen ejecutando las líneas del programa hasta que se encuentre un
return y en ese caso parará para seguir depurando. (p.69)
Joyanes (2008) indica que “La programación modular es uno de los métodos de diseño
más flexible y potente para mejorar la productividad de un programa” (p. 54), físicamente
se puede imaginar cómo tener un gran módulo y dividirlo en partes para lograr minimizar
el esfuerzo en programación; esta división se denomina por submódulos o subprogramas
(ver imagen 4). Se utiliza para soluciones informáticas de mediana amplitud donde es
recomendable dividir la codificación en partes para trabajarlas por separados y luego
unificar para obtener un resultado exitoso en poco tiempo.
3
Imagen 5: Programación modular
Fuente: Joyanes, L. (2008, p.54)
En este tipo de programación, como su nombre lo indica, es por módulos y cada uno de
estos se le asigna una actividad a realizar y de esa manera se codifica. Como pueden ver
en la imagen 4, hay un módulo principal o raíz que se encarga de controlar y gestionar
todas las funciones del programa, se encarga de transportar a cada submódulo para que
ejecuten la actividad asignada y estos a su vez regresan el resultado al módulo principal.
2
Imagen 6: Ejemplo de entorno de programación por módulos
Fuente: Baulderasec (2014). Programar en C++ con varios módulos. [Imagen]. Recuperado de:
https://baulderasec.wordpress.com/programacion/cc/programar -en-c-con-varios-modulos/
3
funciones que operan sobre esos datos” (p. 54). En el caso de POO, los objetos poseen
atributos o también llamados variables de instancia y para leer cada dato se le llama
función miembro del objeto para que se devuelva un valor, en otras palabras: los objetos
son aquellos elementos que se requieren categorizar, los atributos son las características
propias de esos s objeto para volverlos reales y la función es aquel procedimiento que va a
hacer funcionar a los objetos.
2
Imagen 7: Programación Orientada a objeto.
Fuente: Joyanes, L. (2008, p.54)
Se puede indicar que la programación orientada a objeto está diseñada para realizar
una programación con una interfaz gráfica que resulta más amigable al programador, le
proporciona una visión inmediata de la salida del producto final (software). Actualmente,
la mayoría de los lenguajes de programación utilizan este paradigma por considerarlo más
eficiente que los anteriores, permitiéndoles manejar gran cantidad de códigos y dividir el
trabajo entre el grupo de programadores sin que existan problemas de conexión.
El autor Joyanes (2008) menciona que este tipo de programación posee las siguientes
propiedades:
3
La abstracción consiste en seleccionar las propiedades más visibles de un objeto, para
poder trasladarlo al entorno. En este sentido, Joyanes (2008) expone que “se refiere al
hecho de diferenciar entre las propiedades externas de una entidad y los detalles de la
composición interna de dicha entidad” (p.58).
Programador
Objetos del
Clases
sistema
agrupar
2
Imagen 8. Encapsulado de Datos.
Fuente: Elaboración propia basada en Joyanes (2008)
En relación con la Herencia, es aquella que permite compartir los datos entre las
entidades de un sistema informática para evitar la duplicidad de datos, es de utilidad
cuando los objetos tienen comportamientos similares. Por lo tanto, Joyanes (2008) afirma
“es la propiedad que permite compartir información entre dos entidades evitando la
redundancia. En el comportamiento de objetos existen, con frecuencia, propiedades que
son comunes en diferentes objetos” (p.61).
3
Imagen 10. Ejemplo de diagrama de herencia
Fuente: Covantec (2018). Herencia 2. [Imagen]. Recuperado de: https://entrenamiento-
pythonbasico.readthedocs.io/es/latest/leccion9/herencia.html
2
Imagen 11. Ejemplo de Polimorfismo.
Fuente: Código fuente (2012). Polimorfismo en C. [imagen] Recuperado de:
https://codigofuentenet.wordpress.com/2012/07/17/polimorfismo -en-c/
Se puede concluir que todas estas características se relacionan para lograr que la POO
sea una de las metodologías más utilizadas por los programadores en las tendencias
actuales en los lenguajes de programación.
3
Imagen 12. Ejemplo de entorno Orientado a Objeto
Fuente: Omar García (s. f.) Interfaz gráfica de usuario [imagen] Pinterest. Recuperado de:
https://www.pinterest.com/pin/326581410460471704/
2
Imagen 13 Disminución de la complejidad con la reutilización.
Fuente: Moreno, J. (2014). Programación en lenguajes estructurados. RA-MA Editorial. Recuperado de
https://elibro.net/es/ereader/udelistmo/106445?page=70.
• Debe ser clara: la interfaz debe poseer patrones, figura o iconos lógicos que
se asemejen a la actividad a desarrollar.