Programación estructurada: características, ejemplos, ventajas, aplicaciones
La programación estructurada es una disposición en el diseño y construcción de programas informáticos, con el objetivo de mejorar la gestión de su complejidad, teniendo en cuenta las peculiaridades del pensamiento humano. Todo programa se basa en un algoritmo y puede representarse mediante un esquema lógico.
Surgió por la creciente complejidad de los programas computarizados. Se ha convertido en un nuevo esquema de programación que creó nuevas técnicas para poder producir programas seguros de operar por más tiempo.
Gracias al vertiginoso desarrollo del procesamiento de datos computarizado, a fines de los años 60 era posible resolver problemas cada vez más complejos. Sin embargo, comprender, depurar y modificar estos programas presentaba dificultades que los hacían poco confiables.
Los programas de computación grandes realizados para estos problemas tenían códigos fuentes tan largos y desestructurados que se habían vuelto bastante complicados de acceder y navegar con cierta lógica, incluso para sus propios autores.
Índice del artículo
- 1 Origen
- 2 Características
- 3 Ejemplos de programación estructurada
- 4 Ventajas
- 5 Desventajas
- 6 Aplicaciones
- 7 Referencias
Origen
Los programadores utilizaban en los lenguajes de programación el comando “goto” para realizar una bifurcación condicional, lo que conllevaba muchas veces a que se dificultara la legibilidad y a que no se conservara un contexto lógico.
En esa crisis de software se comenzó a plantear si se podía desarrollar de forma sistemática una metodología general y disciplinada que permitiera realizar programas más refinados. Como respuesta a este planteamiento nació el método de programación estructurada.
En 1968, Dijkstra publicó el artículo “Goto, el comando considerado perjudicial”, donde señalaba que el uso indiscriminado de este comando tenía un efecto negativo en la legibilidad y comprensión de los programas de computadora.
Niklaus Wirth diseñó un nuevo lenguaje de programación, llamado Pascal, lanzado en 1970. Desde entonces ha sido utilizado ampliamente para enseñar el diseño de la programación estructurada.
Características
Este modo de programación se caracteriza porque los programadores pueden fragmentar el código fuente de sus programas en bloques lógicamente estructurados, que consisten en bucles, bloques lógicos y comandos condicionales.
El objetivo de la programación estructurada es realizar programas fáciles de escribir, depurar y modificar. Los programas conseguidos son claros, ordenados, comprensibles, sin saltos.
Teoría de la programación estructurada
Dijkstra ideó una teoría vinculada a la programación estructurada, la cual indicaba que al diseñar cualquier programa es conveniente tomar en cuenta los siguientes fundamentos:
– El teorema estructural, que expresa que se puede compilar cualquier programa utilizando solo tres estructuras de control esenciales: estructura secuencial, estructura de alternativas y estructura repetitiva.
– Al delinear los programas se exhorta a aplicar la técnica descendente, llamada también de arriba hacia abajo.
– Deben limitarse los rangos de validez y visibilidad de las variables y las estructuras de datos.
Estructuras de control
El teorema estructural indica que cualquier algoritmo con un único punto de inicio y de culminación se puede constituir como una composición de tres estructuras de control.
Al programar de forma lógica y clara estas estructuras de control admitidas, la programación estructurada permite un enfoque eficiente de las funciones con cualquier grado de dificultad.
Estructura de secuencia o lineal
Esta estructura es simplemente la secuencia o sucesión de dos o más operaciones o comandos.
Estructura de decisión o de alternativas
Es la selección de un comando entre dos posibles alternativas. También se permite elegir entre más de dos alternativas.
Estructura de ciclo o repetitiva con una pregunta inicial
Se repiten ciertos comandos siempre que se cumpla una determinada condición. También el ciclo se puede realizar con un contador.
Independiente del lenguaje de programación
La programación estructurada se basa en módulos funcionales bien definidos, jerarquizados según la naturaleza específica del problema. Esta programación es un método independiente del lenguaje de programación, actuando más bien como un estilo de programar.
Es una forma de idear los programas siguiendo reglas bien establecidas, utilizando para ello un cierto conjunto de estructuras de control.
La programación estructurada permite que los programas se escriban en pseudocódigo, independientemente del lenguaje de la máquina, cercano al natural, convertible en cualquier lenguaje de programación.
Ejemplos de programación estructurada
Casi cualquier fragmento de código de muestra en cualquier lenguaje de programación moderno será un ejemplo de programación estructurada.
Esta programación utiliza bucles, condicionales y subrutinas para controlar el flujo y modularidad para así facilitar la lectura y poder reutilizar el código.
Secuencia
Se puede ejecutar una lista de sentencias en orden, de arriba hacia abajo. En este caso se da como ejemplo un programa en lenguaje natural para hornear pan:
– Agregar harina.
– Añadir levadura.
– Agregar sal.
– Mezclar.
– Añadir agua.
– Amasar.
– Dejar que se levante la masa.
– Hornear.
Repetición
Se repite un bloque de sentencias mientras una condición sea verdadera. Por ejemplo: lavar platos.
Selección
Se elige como máximo una acción entre varias condiciones alternas. Por ejemplo: ordenar el correo.
Programación estructurada en Visual Basic
Secuencia
Las líneas o bloques de código se escriben y ejecutan en un orden secuencial. Por ejemplo, se tiene:
x= 6
y= 12
z= x + y
WriteLine(z)
Repetición
Se repite un bloque de código mientras se cumple una condición. No hay límite para la cantidad de veces que se puede ejecutar el bloque. Ejemplo:
x= 2
Mientras x100
WriteLine(x)
x= x * x
Fin
Selección
Se ejecuta un bloque de código si una condición es verdadera. El bloque de código se ejecuta como máximo una vez. Ejemplo:
x= ReadLine()
Si x Mod 2= 0
WriteLine(“El número es par”)
Fin de Si
Ventajas
– Son programas que satisfacen las necesidades de los clientes.
– Aunque inicialmente se lleva más tiempo generar el código, resulta a menudo en un código que se ejecuta sin errores cuando se ejecuta por primera vez.
– Es similar al vocabulario de palabras y símbolos en inglés.
– Resulta fácil manejar cambios en el programa ante nuevas especificaciones en el futuro.
– Son más fáciles de mantener.
– Es fácil de usar y de entender. Eventualmente se requiere menos tiempo para escribir el código. Es más fácil de aprender.
– El programa escrito en un lenguaje de alto nivel se puede traducir a muchos lenguajes de máquina. Por tanto, se puede ejecutar en cualquier computadora para la que exista un traductor o compilador adecuado.
– Están orientados principalmente a los problemas en lugar de a la máquina.
– Es independiente de la computadora en la que se utiliza. Es decir, los programas desarrollados en lenguajes de alto nivel se pueden ejecutar en cualquier computadora.
Programas más claros
La programación estructurada reduce la posibilidad que una función afecte a otra. Esto hace que se escriban programas más claros, ya que se eliminan las variables globales para ser reemplazadas por variables locales.
Debido a este cambio, se puede ahorrar el espacio de asignación de memoria que ocupa una variable global.
Fácil comprensión
La organización ayuda a comprender fácilmente la lógica de programación, para así poder entender la lógica detrás de los programas.
También ayuda a los recién llegados de cualquier empresa de tecnología a comprender los programas creados por otros trabajadores de la industria, facilitando así una posible depuración del código.
Desventajas
– El traductor o compilador tiene que traducir el lenguaje de alto nivel al lenguaje de máquina. Por tanto, se tiene que pagar un precio en el uso de tiempo de la computadora.
– El código objeto generado por el compilador puede ser ineficiente si se compara con un programa equivalente en lenguaje ensamblador.
Mismo código repetido
El código que está escrito puede aparecer en diferentes partes del programa. Puede ser vulnerable a varios problemas debido a su ubicación. Los programas tienen variables, lo que significa que pueden tomar diferentes valores en diferentes partes del programa.
Resulta engorroso cambiar tipos de datos
El tipo de los datos proviene de muchas funciones. Por tanto, cuando se produzcan cambios en ese tipo de datos, se debe realizar el cambio correspondiente en cada ubicación que actúe sobre ese tipo de datos dentro del programa. Esta es una tarea que realmente consume mucho tiempo si el programa es muy grande.
Se puede considerar el caso de un desarrollo de software, donde varios programadores trabajan en equipo en una aplicación. En un programa estructurado, a cada programador se le asignará construir un conjunto específico de funciones y tipos de datos.
Por tanto, diferentes programadores manejarán por separado diferentes funciones que tienen tipos de datos compartidos entre sí.
Los demás programadores del equipo deberán reflejar los cambios en los tipos de datos realizados por un programador, en los tipos de datos que hayan manejado. De lo contrario, se deberán reescribir varias funciones.
Aplicaciones
La programación estructurada ha funcionado bien para millones de programas y miles de millones de líneas de código. No hay ninguna razón para desecharla.
En particular, ha funcionado extremadamente bien para programas que procesan datos y para el procesamiento de números, los cuales se ejecutan una vez para producir una respuesta.
Dos características tienden a definir bien los problemas que se pueden abordar de una manera puramente estructurada:
– Los datos a manejar coinciden estrechamente con los tipos de datos que están integrados en el lenguaje, siendo generalmente números y cadenas de caracteres.
– El programa sigue un flujo de control bien definido para producir un único resultado basado en alguna entrada.
Los programas de computadora con estas características incluyen muchas aplicaciones científicas, de ingeniería y de procesamiento de texto, además de muchos de los ejemplos de los libros de texto de los cursos tradicionales de informática.
No resulta sorprendente que estos sean exactamente los tipos de programas que las primeras personas que inventaron los lenguajes de programación querían resolver.
Manejo de objetos
La mayoría de los lenguajes de programación modernos están estructurados de esta manera: lo que se tiene en el programa son objetos, y la mayoría del código consiste en diferentes métodos para utilizar los datos almacenados en esos objetos.
Un programa estructurado generalmente tiene control sobre lo que sucede y cuándo sucede, mientras que un programa basado en eventos debe ser capaz de responder a los sucesos en momentos impredecibles.
Referencias
- MVPS (2020). Structured programming. Tomado de: mvps.net.
- Alexey (2019). Structured Programming Paradigm. Medium. Tomado de: medium.com.
- Include Help (2020). Structured Programming, its Advantages and Disadvantages. Tomado de: includehelp.com.
- Tim Trott (2019). Structured Programming Languages. Lonewolf Online. Tomado de: lonewolfonline.net.
- OO Portal (2020). Uses and Benefits of Traditional, Structured Programming. Tomado de: ooportal.com.
- Studeer Snel (2020). Final review – Summary Structured Programming Applications. Tomado de: studeersnel.nl.