¿Qué es programación estructurada?
Si ya estás hace un tiempo estudiando programación, seguro tienes los conceptos bien claros. Ahora, si recién estas comenzando, algunas cosas te costarán bastante comprenderlas. Como por ejemplo los diferentes tipos de programación.
Si estás en ese punto, nada mejor que contar con la mejor ayuda, los mejores consejos y el mejor material para entender de una vez por todas este complicado mundo de la programación.
Qué vas a encontrar aquí: Qué es la programación estructurada. Historia de la programación estructurada. Ejemplos de programación estructurada. Estructura de la programación estructurada y mucho más!
Historia de la programación estructurada
Como sabes, todos los programas de computación están basados en un algoritmo. Estos deben representarse mediante un esquema lógico. Si este es demasiado complejo, se corre el riesgo de que en un punto se pierda el hilo y sea muy complicado poderle hacer modificaciones.
La programación estructurada, como mencionamos, fue creada con el fin de mejorar el desarrollo de programas informáticos. Su principal objetivo es optimizar como se escribe y administra el código, siempre teniendo en cuenta como referencia como pensamos los seres humanos.
La programación estructurada está basada en módulos funcionales bien marcados, generalmente jerarquizados de acuerdo al tipo específico del problema.
Este método de programar es independiente del lenguaje de programación, y funciona más como un estilo de programación que como un método.
Lo mejor que puedes hacer para entender por completo la programación estructurada es adentrarte en su historia. La historia de la programación estructurada podría decirse que comienza en el año 1966.
En ese año, los matemáticos italianos Böhm y Jacopini dan a conocer el llamado teorema del programa estructurado. Con esta demostración, ambos matemáticos declaran que cualquier programa informático puede ser desarrollado usando tan sólo tres instrucciones de control.
Esta fue una revelación muy importante para la época, ya que según este teorema se podrían construir programas mucho más simples, y por lo tanto más veloces.
Debes tomar nota que por aquellos días los programadores utilizaban el comando “goto” con el fin de hacer una bifurcación condicional. Esta técnica tenía una clara desventaja: Se hacía muy difícil la lectura del código ya que no existía un contexto lógico por el cual guiarse.
En este punto, los programadores comenzaron a preguntarse si se podría crear un método para desarrollar software de manera más estructurada. Si se lograba este objetivo, se podrían crear programas mucho más eficientes y discretos.
El siguiente paso en esta historia la dio el matemático y físico holandés Edsger Dijkstra en el año 1968, cuando publicó un artículo científico llamado “Go To Statement Considered Harmful”.
En este papel el científico demostraba, como su título dice, lo dañino que puede ser el comando “goto” en la programación. También promovía el desarrollo y uso de nuevos lenguajes de programación estructurada.
Cabe destacar que Dijkstra participó activamente en el comité que desarrolló el primer lenguaje de programación estructurado.
El paso final de esta historia lo dio el científico suizo Niklaus Wirth, el cual desarrollo Pascal en 1970, un lenguaje de programación que cambió el paradigma del desarrollo del software para siempre.
Gracias a estos primeros pasos, en la actualidad, la programación estructurada, junto con la programación orientada a objetos, impulsan a los lenguajes de programación orientados a objetos más utilizados.
Qué es la Programación estructurada?
La década de 1960 fue una época de gloria para el desarrollo de la informática. Cada día que pasaba se obtenía más poder de cómputo, y con ello se podía desarrollar software más complejo.
Pero pronto los científicos de esos días se dieron cuenta de un grave problema. El código que se podía escribir en aquella época era muy poco confiable. Esto era debido a que dichos códigos eran demasiado largos y no estaban estructurados de una manera eficiente.
Esto por supuesto conllevaba una importante dificultad al momento de depurar o modificar, incluso hasta para los propios creadores.
La programación estructurada vino a subsanar todos estos problemas. Para ello la programación estructurada incluía subrutinas y funciones que permitían crear código limpio. Tal cual lo habían planteado Böhm y Jacopini algunos años atrás.
Esto originó por supuesto un acalorado debate entre los programadores de aquella época, que se separaban entre los que defendían las formas antiguas y los que se ponían de lado de la modernidad.
Teoría de la programación estructurada
Una de las características más importantes de la programación estructurada es que posibilita que el código se desarrolle en pseudocódigo. Esto permite que se pueda desarrollar software de forma independiente al lenguaje de programación usado.
Para que ello suceda fue necesario basarse en el teorema del programa estructurado. Este es el pilar de todo lo que pasó después en materia de programación.
Este teorema te dice que para llevar a cabo cualquier acción en informática solo es necesario combinar 3 estructuras básicas. En la teoría es bastante sencillo, pero afortunadamente en los hechos también.
Para que esto fuera sencillo, Dijkstra desarrolló un método que debía vincularse a la programación estructurada, la cual incluía una serie de fundamentos básicos a tener en cuenta.
- Por supuesto incluir el teorema estructural. Este dice que se podrá compilar cualquier software mediante sólo tres estructuras de control básicas:
-
- Estructura secuencial
- Estructura de alternativas
- Estructura repetitiva.
-
- También al momento de trazar la programación, se debe utilizar la técnica descendente. El diseño descendente o “Top Down” consiste básicamente en dividir el problema en subproblemas más pequeños. La importancia de estos es que se pueden tratar de manera separada.
- Asimismo, se deben limitar los rangos de validez y visibilidad, tanto de las variables como de las estructuras de datos.
- Por supuesto que los desarrollos deben ser independientes del lenguaje de programación con que se creen.
Todas estas normas dan como resultado que el software desarrollado mediante el método de la programación estructurada sea mucho más fáciles de entender. Esto es debido a que tienen una estructura secuencial.
Con ello no es necesario buscar saltos de líneas, propios de la sentencia Goto, en los bloques de código con el fin de intentar entender la lógica del programa. Por supuesto que esto ofrece una claridad estupenda al momento de leer su estructura, ya que todas las sentencias están enlazadas y relacionadas entre ellas.
Otro aspecto positivo de la programación estructurada es que se puede hacer un seguimiento de errores más optimizado en la etapa de testeo y depuración de los programas. Esto permite corregir cualquier problema de manera mucho más rápida y sencilla.
También existe otra ventaja menos visible. El costo de añadir mejoras a un programa dado. Si el programa ha sido diseñado mediante la programación estructurada, esta tarea es mucho más sencilla, y por lo tanto exige menos inversión.
En este sentido, las horas que invierte un programador en añadir o modificar opciones son mucho menos, por lo tanto aumenta su productividad.
Estructura de la programación estructurada
En este punto ya estamos seguros de que ya estás convencido que con sólo 3 estructuras puedes programar de la misma forma pero de manera más eficiente y ordenada. Ahora a partir de este punto vas a conocer cuáles son las tres estructuras básicas para la programación estructurada.
Secuencia
Esta estructura es básicamente la secuencia o sucesión de dos o más operaciones o comandos de un programa. En la programación estructurada, las sentencias se ejecutan en el orden en que parecen registradas en el código. Esto es de forma similar a como ocurre en el lenguaje, una sentencia detrás de la otra.
Selección o condicional
La selección o condicional en la programación estructurada es básicamente la selección de un comando entre dos alternativas. Cabe destacar que también se puede seleccionar entre más de dos alternativas posibles.
Como sabes, una variable booleana es aquella que tiene dos valores posibles. En la programación estructurada, las estructuras condicionales se ejecutan según el valor que se le da a una determinada variable booleana.
Esto significa que estas estructuras se pueden ejecutar de dos maneras diferentes, siempre con dependencia del valor que contenga su variable.
Iteración (ciclo o bucle)
En la programación estructurada, la estructura de repetición de ciclo o bucle ejecuta una sentencia o un conjunto de ellas siempre y cuando una variable booleana sea verdadera. Cabe destacar que también el ciclo se puede realizar con un contador.
Por este motivo, para las estructuras de bucles o iteraciones, los lenguajes de programación utilizan las estructuras “While” y “For”.
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.
Con estas tres estructuras de control básicamente se puede desarrollar cualquier programa. Si bien existen otras estructuras de control, lo cierto es que todas ellas pueden ser construidas a partir de estas tres bases.
Ventajas de la programación estructurada
Sin duda la característica principal de la programación estructurada es la posibilidad de fragmentar el código. Es decir que el programador puede dividir el código fuente de sus programas en bloques estructurados en forma lógica.
Estos están compuestos de comandos condicionales, bloques lógicos y bucles.
El propósito principal de la programación estructurada es poder desarrollar, depurar y modificar código de la manera más sencilla posible.
¿Qué puedes obtener de la programación estructurada?
El software desarrollado mediante esta técnica es mucho más claro y comprensible para cualquiera que acceda a su código. Esto es debido a que en la programación estructurada se minimiza la posibilidad de que una función afecte a otra.
Al eliminarse las variables globales por variables locales, permite que el programador pueda llevar a cabo diseños más simples y limpios. Gracias a ello, también se podrá ahorrarse el espacio de asignación de memoria que ocupa una variable global.
También los programas desarrollados usando programación estructurada son más fáciles de mantener al estar organizados. La organización es un punto más que importante, ya que permite entender la lógica de programación.
Este es particularmente importante en las empresas tecnológicas, ya que muchas veces los programas son mantenidos y modificados por varios programadores, y si no se logra comprender perfectamente la lógica del programa es un problema muy grave.
La programación estructurada te permite desarrollar con la menor tasa de errores cuando ejecutas luego. A menudo puedes ejecutar un programa por primera vez sin errores.
Al poder fragmentar el código, es posible modificar su desarrollo para estar a la altura de los pedidos de tus clientes. Esto significa que podrás cambiar especificaciones del mismo en el futuro de forma sencilla.
Otra ventaja es la similitud al lenguaje inglés. Es decir que los términos utilizados tienen un significado que se corresponde al habla común.
También se requiere menos tiempo para escribir código. Una gran ventaja para todos los programadores.
Desarrollar mediante la programación estructurada en lenguajes de alto nivel permite ejecutar el programa en cualquier computadora, siempre y cuando exista un traductor o compilador adecuado.
Desventajas de la programación estructurada
Así como la programación estructurada tiene sus ventajas, también tiene desventajas. Menos, pero siguen siendo desventajas.
Una de las primeras es el alto consumo de tiempo de proceso. Esto es debido a que el traductor o compilador tiene que traducir el lenguaje de alto nivel al lenguaje de máquina.
El código objeto que se genera mediante el compilador puede ser ineficiente en ciertas situaciones. Esto si se lo compara con un código similar pero genera en lenguaje ensamblador.
Otra desventaja es que el código se puede repetir en varias partes del mismo desarrollo. Esto puede generar un importante problema de acuerdo a donde se encuentre ubicado. Como sabes, el código tiene variables.
¿Qué significa esto? Que pueden tomar diferentes valores en distintas ubicaciones del código.
También tienes que tener cuidado cuando cambies los tipos de datos. ¿Por qué? Los datos son provistos por múltiples funciones. Cuando se llevan a cabo cambios en ese tipo de datos, es necesario cambiarlo en cada ubicación en donde se encuentre presente este tipo de dato.
Obviamente, este es un trabajo muy arduo, más aún si el programa es grande.
Más aún si el software está siendo desarrollado por un equipo de programadores. En la programación estructurada, a cada desarrollador se le pedirá escribir un conjunto específico de funciones y tipos de datos.
Si los cambios en los tipos de datos no se reflejan en todas las instancias del trabajo en equipo, se tiene entre manos un problema muy grande.
Para qué se usa la programación estructurada
Durante años, la programación estructurada ha cumplido a la perfección con el objetivo para el cual fue desarrollada.
Miles de millones de líneas de código se han escrito con este método. Y se sigue usando para todo tipo de implementaciones, fundamentalmente en aquellas en las cuales se procesan datos y números.
En particular, existen dos características que definen los problemas y su solución mediante la programación estructurada.
Estos son:
- Los datos a manipular se corresponden estrechamente con los tipos de datos integrados en el lenguaje. Estos generalmente son números y cadenas de caracteres.
- El código siguen un flujo de control bien definido. Esto permite generar un único resultado basado en alguna entrada.
Es mucho el software desarrollado que cuenta con estas características. Entre ellos se puede citar aplicaciones de ingeniería, científicas, y software de texto.
En este sentido, muchos de los lenguajes de programación modernos están estructurados de forma tal que los datos que se manipulan son objetos.
El código alrededor de estos objetos consta en múltiples métodos para usar los datos almacenados en dichos objetos.
Lenguajes para programación estructurada
Hasta este punto no hemos hablado de los lenguajes de programación capaces de llevar a cabo un proyecto en programación estructurada.
En este sentido, es posible realizar cualquier proyecto de programación estructurada en la mayoría de los lenguajes de programación actuales.
Sin embargo, siempre es preferible desarrollar una programación de este tipo con un un lenguaje de programación procedimental.
Los lenguajes de programación utilizados anteriormente para los desarrollos en programación estructurada eran por ejemplo Pascal, Algol, Ada y PL/I. Sin embargo, muchos de los lenguajes de programación actuales son capaces de hacer programación estructurada.
Para ellos, muchos de estos lenguajes incluyen características orientadas hacia la programación estructurada. También algunos de ellos omiten características como “Goto”, con el fin de fomentar el uso de la programación estructurada.
Algunos ejemplos de lenguajes de programación estructurada modernos son C, PASCAL y dBASE.
Deja una respuesta