Diagramas Estructurados -1- INTRODUCCIÓN Las técnicas de desarrollo y diseño de programas que se utilizan en la programación convencional tienen inconvenientes, sobre todo a la hora de verificar y modificar un programa. En la actualidad están adquiriendo gran importancia las técnicas de programación, cuyo objetivo principal es el de facilitar la comprensión del programa, y además permiten, de forma rápida, las ampliaciones y modificaciones que surjan en la fase de explotación del ciclo de vida de un programa o una aplicación informática. En la programación convencional se suele hacer un uso indiscriminado y sin control de las instrucciones de salto condicional e incondicional, lo cual produce cierta complejidad en la lectura y en las modificaciones de un programa . eliminar estas dificultades es uno de los propósitos de la programación estructurada y, por ello, en ocasiones, se ha definido como la técnica de programación sin saltos condicionales e incondicionales. De una forma general los diagramas de flujo de datos son gráficas dirigidas en donde los nodos especifican las actividades de proceso y los arcos la transferencia de datos entre nodos de proceso. Como cualquier diagrama de flujo, estos pueden ser utilizados en cualquier nivel de abstracción. Un diagrama de datos representa el flujo de datos entre estatutos individuales o entre bloques de estatutos dentro de una rutina; flujo de datos entre rutinas secuenciales, flujo de datos entre procesos concurrentes o flujo de datos entre sistemas de cómputo distribuidos, donde cada nodo representa una unidad de proceso geográficamente separada. Distinto a otros diagramas de flujo, las burbujas no indican la lógica de decisión o las condiciones bajo las cuales varios nodos de proceso se activen. Los diagramas de datos pueden expresarse utilizando una notación informal, o por medio de símbolos especiales para denotar a los nodos de proceso, a los nodos de entrada. Los diagramas generales especifican los procesos de un sistema en forma funcional; cada diagrama describe las entradas, los pasos de proceso y las salidas para la función en cuestión; un diagrama general puede indicar la localización de los diagramas de detalles subordinados necesarios. Diagramas Estructurados -2- DIAGRAMAS DE FLUJOS ESTRUCTURADOS Los diagramas de flujo representan la forma más tradicional para especificar y documentar los detalles algorítmicos de un producto de programación; estos diagramas utilizan cajas rectangulares para especificar las acciones, cajas en forma de rombos para las proposiciones de decisión, arcos dirigidos para las interconexiones entre las diversas cajas, así como una variedad de formas especiales para denotar las entradas, las salidas, los almacenamientos, etcétera. TEOREMA DE LA ESTRUCTURA (EL NACIMIENTO DE LOS DIAGRAMAS DE FLUJO) En un inicio, la programación estructurada fue desarrollada en sus principios por Edsgar W. Dijkstra en sus Notes on Structured Programming y se basa en el denominado Teorema de la Estructura desarrollado en 1966 por Bömh y Jacopini, que se ratificó con los trabajos de Charlan D. Mills. En la actualidad existen diversas definiciones de estos diagramas, pero todas ellas giran alrededor del teorema de estructura que, como ya hemos dicho, se debe a Bömh y Jacopini que inician todo esto con esta técnica de programación a través de módulos o bloques. Para un buen entendimiento del teorema mencionado, se realiza una definición previa de algunos de los conceptos que trata el teorema: 1. Diagrama Propio. Es aquel que posee un solo punto de entrada y uno de salida. C1 A N S B 2. Programa Propio. Es aquel programa que cumple las siguientes condiciones: Posee un solo inicio y un solo fin. Todo elemento del programa es accesible, es decir, existe al menos un camino desde el inicio al fin que pasa a través de él. No posee bucles infinitos. Diagramas Estructurados -3- INICIO C1 S A N B FIN 3. Teorema de la Estructura. Todo programa propio, realice el trabajo que realice, tiene siempre al menos un programa propio equivalente que sólo utiliza las estructuras básicas de la programación, que son: La secuencia. La selección. La repetición. CARACTERÍSTICAS DE LOS DIAGRAMAS ESTRUCTURADOS En los distintos departamentos de informática existentes no siempre se dispone de los mismos programadores con respecto al tiempo que se pretende que dure una aplicación, por lo cual es de suma importancia que un programa realizado por una persona sea fácil de modificas u mantener por otra. En este sentido, la diagramación estructurada ofrece muchas ventajas para logras estos objetivos. Con esto podemos decir que: Un diagrama estructurados es: Fácil de leer y comprender. Fácil de codificar en una amplia gama de lenguajes y en diferentes sistemas. Fácil de mantener. Eficiente, aprovechando al máximo los recursos de la computadora. Modularizable. Diagramas Estructurados -4- ALGUNAS DIFERENCIAS DE LOS DIAGRAMAS ESTRUCTURADOS Y LOS DIAGRAMAS TRADICIONALES. Los diagramas de flujo estructurados difieren de los diagramas tradicionales en que los primeros tienen restricción en cuanto a las formas de uso; con esto se obtiene que la gráfica obtenida sea un equivalente gráfico de la descripción por medio del seudocódigo estructurado; un ejemplo de las formas comunes y de los equivalentes en seudocódigo son: A S P F P V F S1 P S2 V S MIENTRAS P REPETIR S REPETIR S HASTA P SI P ENTONCES S1 SI NO S2 Los diagramas estructurados poseen una entrada única y una salida única; así estas formas pueden ser anidadas dentro de otras formas hasta el nivel deseado de anidamiento, manteniendo el principio del teorema de la estructura. ALGUNAS VENTAJAS Y DESVENTAJAS SOBRE LOS DIAGRAMAS TRADICIONALES. Sabemos ahora, que los diagramas estructurados, a diferencia de los tradicionales es que, los primeros son una representación gráfica tal cual de los que es el seudocódigo estructurados de los programas que desarrollan hoy en día de acuerdo a la tendencia de la programación modulada. También existe un mejor entendimiento a mayor velocidad de cómo se maneja la transformación de datos. En los diagramas tradicionales, son mucho mejores para representar las especificaciones del diseño externo y del diseño interno en cualquier nivel además de que aquí los diagramas especifican los procesos de un sistema en forma funcional. Diagramas Estructurados -5- APLICACIONES DE LOS DIAGRAMAS DE FLUJO. Los diagramas de flujo estructurados, como su nombre menciona, es actualmente caracterizado como una herramienta de la programación estructurada. Gracias a esta herramienta (y debido a las características de la programación estructurada) podemos interpretar cada acción de un programa y representarlo gráficamente (en un diagrama estructurado) con la debida estructura (simple o compuesta) de la diagramación estructurada. PRINCIPALES ESTRUCTURAS DE LOS DIAGRAMAS ESTRUCTURADOS. 1. Estructura Secuencial. Es una estructura con una entrada y una salida en la cual figuran una serie de acciones cuya ejecución es lineal y en el orden en que aparecen. A su vez. Todas las acciones tienen una única entrada y una única salida. A B C 2. Estructura Alternativa. Es una estructura con una sola entrada y una sola salida en la cual se realiza una acción de entre varias, según una condición o se realiza una acción según el cumplimiento o no de una determinada condición. Esta condición puede ser simple o compuesta. Las estructuras alternativas pueden ser: De dos salidas, en la que una de ellas puede ser la acción nula. De tres o más salidas, que también se llama múltiple. Diagramas Estructurados S S COND . N N COND . A A B Alternativa Simple Alternativa doble COND . A B C Alternativa Múltiple D -6- Diagramas Estructurados -7- 3. Estructura Repetitiva. Es una estructura con una entrada y una salida en la cual se repite una acción un número determinado o indeterminado de veces, dependiendo en este caso del cumplimiento de una condición. Las estructuras repetitivas pueden ser: Estructura para (FOR) Estructura mientras (WHILE) Estructura hasta (UNTIL) 4. Estructura PARA (FOR). En una estructura se repite una acción un número fijo de veces representado normalmente por N. Ni := X S Si Ni > Nf N A Ni=Ni+1 5. Estructura MIENTRAS (WHILE). En esta estructura se repite una acción mientras se cumpla la condición que controla el bucle. La característica principal de esta estructura es la de que la condición es evaluada siempre antes de cada repetición. El número de repeticiones oscila entre 0 e infinito, dependiendo de la evaluación de la condición, cuyos argumentos en los casos de repetición, al menos Diagramas Estructurados -8- una vez, deberán modificarse dentro del bucle, pues de no ser así el número de repeticiones será infinito y nos encontraremos en un bucle sin salida. N condición S A 6. Estructura HASTA (UNTIL). En esta estructura se repite una acción hasta que se cumpla la condición que controla el bucle, la cual se evalúa después de cada ejecución del mismo. El número de repeticiones oscila entre 1 e infinito, dependiendo de la evaluación de la condición, cuyos argumentos en los casos de repetición, al menos dos veces, deberán modificarse dentro del bucle, pues de no ser así el número de repeticiones será infinito y nos encontraremos en un bucle sin salida A N condición S