República Bolivariana de Venezuela
Ministerio Del Poder Popular Para La Defensa
Universidad Nacional Experimental Politécn...
Programación Estructurada.
La programación estructurada es la técnica de desarrollo de programas
de la forma más clara pos...
La modificación de los módulos es más fácil y se pueden referenciar
cuantas veces se requiera, con lo que se ahorra tiempo...
A diferencia de otros estilos de programación, los programas
estructurados pueden ser leídos secuencialmente, desde el ini...
3-Estructura Repetitiva (Iterativa): También llamada la estructura hacer –
mientras - que, corresponde a la ejecución repe...
Los elementos 1, 2 y 3 pueden ser instrucciones o bloques que indican
que independientemente de su complejidad o tamaño, s...
La comunicación entre los segmentos se debe realizar a través de una
lista de parámetros, lo cual reduce la oportunidad de...
autores usualmente acreditan el resultado a un documento escrito en 1966 por
Böhm y Jacopini, posiblemente porque Dijkstra...
Ventajas Potenciales.
Un programa escrito de acuerdo a estos principios no solamente tendrá
una estructura, sino también u...
Diferencias Con La Programación Estructurada Con Otro Tipo De
Programación.
Aunque la programación estructurada condujo a ...
Teorema De La Estructura.
El teorema de la estructura establece que un programa propio puede ser
escrito utilizando solame...
F
Donde P es predicado y A es el modulo controlado.
Se debe comprender claramente que un rectángulo, que representa un
mod...
diferentes en función del valor de un código de 2 dígitos, podemos representar
este proceso mediante 100 estructuras IF, s...
Existen situaciones poco comunes en las cuales el uso de GOTO puede
tener ventajas comparado con otras maneras de expresar...
Próxima SlideShare
Cargando en…5
×

Programacion estructurada

794 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
794
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
16
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Programacion estructurada

  1. 1. República Bolivariana de Venezuela Ministerio Del Poder Popular Para La Defensa Universidad Nacional Experimental Politécnica De La Fuerza Armada UNEFA – Yaracuy Nirgua Programación Estructurada. Alumno: José A. Silva Clisanchez CI. 22317008 Ing. De Sistemas 8vo Semestre Abril 2014
  2. 2. Programación Estructurada. La programación estructurada es la técnica de desarrollo de programas de la forma más clara posible haciendo uso de tres estructuras de control: la secuencia, la selección y la interacción. Estas estructuras pueden combinarse para crear programas que manejen cualquier necesidad de procesamiento de datos. La programación estructurada es una teoría de programación que consiste en construir programas de fácil comprensión, es especialmente útil, cuando se necesitan realizar correcciones o modificaciones después de haber concluido un programa o aplicación. Al utilizar la programación estructurada, es mucho más sencillo entender la codificación del programa, que se habrá hecho en diferentes secciones. Se basa en una metodología de desarrollo de programas llamada refinamiento sucesivo, es decir, Se plantea una operación como un todo y se divide en segmentos más sencillos o de menor complejidad, una vez terminado todos los segmentos del programa, se procede a unificar las aplicaciones realizadas por el grupo de programadores. Si se ha utilizado adecuadamente la programación estructurada, esta integración debe ser sencilla y no presentar problemas al integrar la misma, y de presentar algún problema, será rápidamente detectable para su corrección. La representación grafica de la programación estructurada se realiza a través de diagramas de flujo, el cual representa el programa con sus entradas, procesos y salidas. La programación estructurada propone segregar los procesos en estructuras lo más simple posibles, las cuales se conocen como secuencia, selección e interacción, que están disponibles en todos los lenguajes modernos de programación imperativa en forma de sentencias, combinando esquemas sencillos se pueden llegar a construir sistemas amplios y complejos pero de fácil entendimiento. La programación estructurada es un método disciplinado de escribir programas que sean claros, que se demuestre que sean correctos y fáciles de modificar. Esta consiste en dividir los programas en módulos y se basa en el desarrollo de programas que van de lo general a lo particular, es decir, del conjunto al elemento, es decir de un todo a lo específico. Para la solución de un problema en particular, se inicia considerando las funciones que tiene que cumplir el programa en general y después se va desmembrando estas funciones en sub-funciones más pequeñas hasta llegar al caso último o más particular y que ya no se pueda subdividir en casos más pequeños. Una vez que ya se tiene el programa desmembrado en de lo general a lo particular, se empieza a programar estas funciones pequeñas, particulares o módulos, de esta manera, siempre podremos construir nuevos módulos o unidades insertando el nombre del módulo donde corresponda y desarrollándolo a parte.
  3. 3. La modificación de los módulos es más fácil y se pueden referenciar cuantas veces se requiera, con lo que se ahorra tiempo en la programación, un programa tiene un diseño estructurado si cumple las dos siguientes condiciones: *El teorema de Estructura. *Está debidamente documentado El teorema de Estructura dice que “un programa cumple el teorema de estructura si y sólo (ó) si es propio y contiene únicamente las tres estructuras básicas de control” que son la secuencial, la alternativa y la repetitiva, un programa es propio si y sólo si cumple: que tenga un solo punto de entrada y un solo punto de salida y que entre dos puntos de control del programa exista al menos un camino. La programación estructurada es un estilo con el cual él se busca que el programador elabore programas sencillos y fáciles de entender, la programación estructurada hace uso de tres estructuras básicas de control que son: Estructura Secuencial, Estructura Selectiva y la Estructura Repetitiva (ó Iterativa). La programación estructurada se basa un teorema fundamental, el cual afirma que cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando únicamente las tres estructuras básicas. Se pueden definir algunos conceptos que son muy relativos a la programación estructurada como por ejemplo la composición y también podemos definir algunas características como lo son: las estructuras de control, la segmentación e identación. *La Composición: La programación estructurada está compuesta por segmentos de código que pueden incluir desde una instrucción hasta varias páginas de estas. Cada uno de los segmentos de un programa, debe cumplir con dos procesos básicos: la entrada y la salida de datos.
  4. 4. A diferencia de otros estilos de programación, los programas estructurados pueden ser leídos secuencialmente, desde el inicio hasta el final, sin perder la continuidad. Definición De Las 3 Estructuras Básicas. 1-Estructura Secuencial: Indica que las instrucciones de un programa se ejecutan una después de la otra, en el mismo orden en el cual aparecen en el programa. Se representa gráficamente como una caja después de otra, ambas con una sola entrada y una única salida. Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un módulo o programa completo, siempre y cuando éstos también sean programas apropiados. 2-Estructura Selectiva: También conocida como la estructura si verdadero - falso, plantea la selección entre dos alternativas con base en el resultado de la evaluación de una condición; equivale a la instrucción IF de todos los lenguajes de programación y se representa gráficamente de la siguiente manera: En el diagrama de flujo anterior, C es una condición que se evalúa; A es la acción que se ejecuta cuando la evaluación de esta condición resulta verdadera y B es la acción ejecutada cuando el resultado de la evaluación indica falso. La estructura también tiene una sola entrada y una sola salida; y las funciones A y B también pueden ser cualquier estructura básica o conjunto de estructuras.
  5. 5. 3-Estructura Repetitiva (Iterativa): También llamada la estructura hacer – mientras - que, corresponde a la ejecución repetida de una instrucción mientras que se cumple una determinada condición. El diagrama de flujo para esta estructura es el siguiente: Aquí el bloque A se ejecuta repetidamente mientras que la condición C se cumpla o sea cierta. También tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura básica o conjunto de estructuras Características De La Programación Estructurada. Los programas escritos con estos principios tienen no solo una estructura fácil de leer, sino que además tienen una excelente presentación, que permite comprender el código con mayor facilidad. La estructuración del contenido facilita la revisión de la codificación y reduce el tiempo de prueba y depuración de programas. *Estructuras de control: Son estructuras que permiten controlar el orden de ejecución de las instrucciones contenidas dentro de de ellas dependiendo de condiciones previamente establecidas. Todos los programas pueden desarrollarse utilizando únicamente con las tres estructuras de control características de la programación estructurada. *Secuencia: Se refiere al orden en la que las instrucciones de un programa son ejecutadas, tal y como se tienen en el programa.
  6. 6. Los elementos 1, 2 y 3 pueden ser instrucciones o bloques que indican que independientemente de su complejidad o tamaño, su ejecución es realizada en el orden indicado. *Selección: Es la posibilidad de elegir entre dos instrucciones, donde la decisión se toma en base a la evaluación de una expresión a la que llamamos condición. La imagen indica que si se cumple la condición 1, se avanza al punto 2 y se llega al punto 4, en caso de no cumplirse la condición 1 entonces se avanza al punto 3 y así se llega al punto 4. *Iteración: Es una estructura que se utiliza para repetir alguna instrucción o grupo de instrucciones siempre que se cumpla una condición. Si se cumple la condición 1, se avanza al punto 2 y se llega al punto 3 donde se encuentra una nueva condición 3 que si se cumple se regresa a la condición 1 y si no se cumple, se continúa al punto 4. *Segmentación: Para favorecer la comprensión del código de los programas desarrollados, es conveniente establecer segmentos del programa para que estos no excedan una página de codificación (50 líneas en promedio). No se trata únicamente de dividir un programa en trozos donde la longitud sea de 50 líneas; la segmentación debe cumplir con las siguientes características básicas: - Las partes se deben relacionar entre sí de forma jerárquica, formando una estructura de árbol. - Debe mostrar claramente las relaciones existentes entre las funciones para permitir comprender lo que debe hacer el programa de forma fácil. - La comunicación entre los segmentos se debe realizar cuidadosamente y de forma controlada.
  7. 7. La comunicación entre los segmentos se debe realizar a través de una lista de parámetros, lo cual reduce la oportunidad de se relacionen entre ellos de forma indeseada o inentendible. *Identación: Es el espacio o sangría que se asigna a una línea de código y dependiendo de su longitud, esta indica si una instrucción o grupo de instrucciones pertenecen a determinado bloque. Este espacio es importante ya que facilita la lectura del programa respecto a las relaciones existentes entre las instrucciones y los segmentos. Orígenes De La Programación Estructurada. A finales de los años 1970 surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su mejor comprensión, no sólo proveyendo ventajas durante la fase de desarrollo, sino también posibilitando una más sencilla modificación posterior. El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes: *Secuencia *Instrucción condicional. *Iteración (bucle de instrucciones) con condición al principio. 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, éstas pueden ser construidas mediante las tres básicas citadas. Historia De La Programación Estructurada. El teorema del programa estructurado proporciona la base teórica de la programación estructurada. Señala que tres maneras de combinar programas son suficientes para expresar cualquier función computable: secuencia, selección e iteración. Esta observación no se originó con el movimiento de la programación estructurada. Estas estructuras son suficientes para describir el ciclo de instrucción de una unidad central de procesamiento, así como el funcionamiento de una máquina de Turing. Por lo tanto un procesador siempre está ejecutando un "programa estructurado" en este sentido, incluso si las instrucciones que lee de la memoria no son parte de un programa estructurado. Sin embargo, los
  8. 8. autores usualmente acreditan el resultado a un documento escrito en 1966 por Böhm y Jacopini, posiblemente porque Dijkstra había citado este escrito. El teorema del programa estructurado no responde a cómo escribir y analizar un programa estructurado de manera útil. Estos temas fueron abordados durante la década de 1960 y principio de los años 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony Hoarey y David Gries. Lenguajes De Programación Estructurada. Es posible hacer la programación estructurada en cualquier lenguaje de programación, aunque es preferible usar algo como un lenguaje de programación procedimental. Algunos de los lenguajes utilizados inicialmente para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada – pero la mayoría de los nuevos lenguajes de programación procedimentales desde entonces han incluido características para fomentar la programación estructurada y a veces deliberadamente omiten características en un esfuerzo para hacer más difícil la programación no estructurada. Ventajas De La Programación Estructurada. Con la programación estructurada elaborar programas de computador sigue siendo un albor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas: 1-Los programas son más fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación. La estructura del programa es más clara puesto que las instrucciones están más ligadas o relacionadas entre sí, por lo que es más fácil comprender lo que hace cada función. 2-Reducción del esfuerzo en las pruebas. El programa se puede tener listo para producción normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas ("debugging") se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir más fácilmente. 3-Reducción de los costos de mantenimiento. 4-Programas más sencillos y más rápidos 5-Aumento de la productividad del programador 6-Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programación 7-Los programas quedan mejor documentados internamente.
  9. 9. Ventajas Potenciales. Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura, sino también una excelente presentación. Un programa escrito de esta forma tiende a ser mucho más fácil de comprender que programas escritos en otros estilos. La facilidad de comprensión del contenido de un programa puede facilitar el chequeo de la codificación y reducir el tiempo de prueba y depuración de programas. Esto último es cierto parcialmente, debido a que la programación estructurada concentra los errores en uno de los factores más generador de fallas en programación: la lógica. Un programa que es fácil para leer y el cual está compuesto de segmentos bien definidos tiende a ser simple, rápido y menos expuesto a mantenimiento. Estos beneficios derivan en parte del hecho que, aunque el programa tenga una extensión significativa, en documentación tiende siempre a estar al día, esto no suele suceder con los métodos convencionales de programación. La programación estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad. Programación Estructurada De Bajo Nivel. En un bajo nivel, los programas estructurados con frecuencia están compuestos de simples estructuras de flujo de programa jerárquicas. Estas son secuencia, selección y repetición: *"Secuencia" se refiere a una ejecución ordenada de instrucciones. *En "selección", una de una serie de sentencias es ejecutada dependiendo del estado del programa. Esto es usualmente expresado con palabras clave como if..then..else..endif, switch, o case. En algunos lenguajes las palabras clave no se pueden escribir textualmente, pero debe ser delimitada (stropped). *En la "repetición" se ejecuta una sentencia hasta que el programa alcance un estado determinado, o las operaciones han sido aplicadas a cada elemento de una colección. Esto es usualmente expresado con palabras clave como while, repeat, for o do. until. A menudo se recomienda que cada bucle sólo debe tener un punto de entrada (y en la programación estructural original, también sólo un punto de salida, y pocos lenguajes refuerzan esto).
  10. 10. Diferencias Con La Programación Estructurada Con Otro Tipo De Programación. Aunque la programación estructurada condujo a mejoras de la técnica de programación secuencial, los métodos modernos de diseño de software orientado a objetos incluyen mejoras entre las que están el uso de los patrones de diseño, diseño por contrato, y lenguajes de modelado, Las principales diferencias entre la programación estructurada y la orientada a objetos son: *La programación orientada a objetos es más moderna, es una evolución de la programación estructurada que plasma en el diseño de una familia de lenguajes conceptos que existían previamente con algunos nuevos. *La programación orientada a objetos se basa en lenguajes que soportan sintáctica y semánticamente la unión entre los tipos abstractos de datos y sus operaciones *La programación orientada a objetos incorpora en su entorno de ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre objetos. Erróneamente se le adjudica a la programación estructurada clásica ciertos problemas como si fueran inherentes a la misma, esos problemas fueron haciéndose cada vez más graves y antes de la programación orientada a objetos diversos autores encontraron soluciones basadas en aplicar estrictas metodologías de trabajo. De esa época son los conceptos de cohesión y acoplamiento, de esos problemas se destacan los siguientes: Modelo mental anómalo. Nuestra imagen del mundo se apoya en los seres, a los que asignamos nombres sustantivos, mientras la programación clásica se basa en el comportamiento, representado usualmente por verbos. *Es difícil modificar y extender los programas, pues suele haber datos compartidos por varios subprogramas, que introducen interacciones ocultas entre ellos. *Es difícil mantener los programas. Casi todos los sistemas informáticos grandes tienen errores ocultos, que no surgen a la luz hasta después de muchas horas de funcionamiento. *Es difícil reutilizar los programas. Es prácticamente imposible aprovechar en una aplicación nueva las subrutinas que se diseñaron para otra. *Es compleja la coordinación y organización entre programadores para la creación de aplicaciones de media y gran envergadura. En la programación orientada a objetos pura no deben utilizarse llamadas de subrutinas, únicamente mensajes, por ello, a veces recibe el nombre de programación sin call, igual que la programación estructurada se llama también programación sin goto, sin embargo, no todos los lenguajes orientados a objetos prohíben la instrucción call, permitiendo realizar programación híbrida, imperativa y orientada a objetos a la vez.
  11. 11. Teorema De La Estructura. El teorema de la estructura establece que un programa propio puede ser escrito utilizando solamente las siguientes estructuras lógicas de control: secuencia, selección e iteración. Un programa de define como propio si cumple con los dos requerimientos siguientes: a. Tiene exactamente una entrada y una salida para control del programa. b. Existen caminos que se pueden seguir desde la entrada hasta la salida que conducen por cada parte del programa, es decir, no existen lazos infinitos ni instrucciones que no se ejecutan. Las tres estructuras lógicas de control básicas, se definen de la siguiente forma: Secuencia: es simplemente la formalización de la idea de que las instrucciones de un programa son ejecutadas en el mismo orden en que ellas aparecen en el programa. En términos de diagrama de flujo la secuencia es representada por una función después de la otra, como se muestra a continuación. A y B pueden ser instrucciones sencillas hasta módulos completos, lo importante es que sean programas propios, independientemente de su tamaño o complejidad interna. Ay B deben ser programas propios en el sentido en que estos fueron definidos, es decir, que posean solamente una entrada y una salida; la combinación de A seguida por B es también un programa propio, ya que esta unión tiene una entrada y una salida exclusivamente, esto se muestra gráficamente en la figura siguiente: Donde la caja externa sugiere que la combinación de A seguida de puede ser tratada como una unidad para propósitos de control. Selección: Es la escogencia entre dos acciones tomando la decisión en base al resultado de evaluar un predicado. Esta estructura de control es denominada usualmente IFTHENELSE. La representación en forma de diagrama de flujo de esta estructura lógica de control se muestra a continuación: F Donde P es predicado y A y B son las dos funciones. Iteración: Esta estructura lógica es utilizada para que se repita la ejecución de un conjunto de instrucciones mientras se cumpla una condición o predicado. Generalmente a esta estructura se le conoce como DOWHILE (hacer mientras) y su representación se muestra a continuación: V
  12. 12. F Donde P es predicado y A es el modulo controlado. Se debe comprender claramente que un rectángulo, que representa un modulo en un diagrama, siempre puede ser sustituido por cualquiera de las tres estructuras de control descritas anteriormente; por ejemplo, veamos el diagrama siguiente: En él, la línea punteada limita un rectángulo que contiene una estructura, que a su vez controla dos módulos X y Y. La estructura limitada por la línea punteada es sustituida por una función quedando de la siguiente forma: V F Es decir, una función sustituye a una estructura lógica de control o viceversa. Otras Estructuras Lógicas De Control. Aunque todos los programas pueden ser escritos utilizando solamente las tres estructuras de control descritas anteriormente, es algunas veces, conveniente utilizar algunas estructuras adicionales; a continuación se hará una descripción de esas formas lógicas de control diferentes a las ya definidas: El Dountil: La estructuras de iteración básica es el DOWHILE, pero existe una estructura que es muy parecida a ella y que a veces es usada, dependiendo del proceso que se esté tratando de representar y de las características apropiadas en el lenguaje con el cual se está trabajando, esta forma de control es la que se llama DOUNTIL, cuya representación gráfica en forma de diagrama de flujo se muestra a continuación: V Donde A es el modulo controlado y P el predicado. La diferencia entre el DOWHILE y el DOUNTIL es que en el primero el predicado es probado antes de ejecutar la función, si el predicado es falso la función no es ejecutada; mientras que en el segundo, el predicado es probado después de ejecutar la función, o sea, que la función siempre será ejecutada al menos una vez, independientemente si el predicado es cierto o falso. La estructura CASE: Algunas veces resulta de gran ayuda, desde el punto de vista de eficiencias y facilidad de lectura de un programa, tener alguna forma de expresar una desviación del flujo de control hacia múltiples procesos en función del resultado de la evaluación de un predicado; usualmente, a la estructura de control que satisface el requerimiento anterior, se le denomina la estructura CASE. Por ejemplo, si es necesario ejecutar una de cien rutinas
  13. 13. diferentes en función del valor de un código de 2 dígitos, podemos representar este proceso mediante 100 estructuras IF, sin embargo el sentido común nos induce a pensar que no hay razón para adherirnos rígidamente a las tres estructuras básicas de control y en lugar de 100 IF usaríamos la estructura CASE. Esta estructura utiliza el valor de una variable para determinar cual, de varias rutinas, será ejecutada. La representación gráfica de esta estructura de control se muestra a continuación: En cada lenguaje será necesario establecer cuáles son las instrucciones que, en forma conveniente y eficiente, realizan funciones establecidas por las diferentes estructuras lógicas de control. Etiquetas E Instrucciones GOTO. Ocasionalmente se habla de la programación estructurada como una técnica de programación que no utiliza GOTO (instrucción de desvío del flujo de control en forma incondicional); si bien es cierto que un programa bien estructurado tiene, o bien ninguna o muy pocas instrucciones GOTO, asumiendo que estamos empleando un lenguaje de programación adecuado, la ausencia de instrucciones GOTO puede ser mal interpretada. Es conveniente que aclaremos este aspecto en este momento. Un programa bien estructurado gana una parte importante de su fácil comprensión del hecho que puede ser leído en forma secuencial sin desvíos en el flujo de control desde una parte del programa a otra. Esta característica es consecuencia de usar exclusivamente las estructuras lógicas de control estándar (el GOTO no es una de ellas), esta secuencialidad o lectura TOPDOWN es beneficiosa debido a que hay un límite definido para muchos detalles que la mente humana puede abarcar de una vez. Se hace relativamente fácil y rápida la comprensión de la tarea que realiza una instrucción si su función puede ser entendida en términos de unas pocas instrucciones mas, físicamente contiguas y delimitadas. El problema con la instrucción GOTO es que generalmente aleja al programa realizado de los propósitos descritos y en casos extremos puede hacer que un programa sea esencialmente incomprensible. No se requieren esfuerzos especiales para eliminar de un programa los GOTO, los cuales han sido, algunas veces, malentendidos como enemigos de la programación estructurada, existen buenas y fundadas razones para no querer usarlos pero no se necesita que se realice un trabajo arduo para eliminarlo; ellos no aparecerán, en general, cuando se utilicen las estructuras lógicas de control, descritas anteriormente. Naturalmente, si escogemos para programar un lenguaje de computación que no posea las estructuras lógicas de control fundamentales, entonces, tendremos que simularlas y seguramente ello implicara el uso de la instrucción GOTO; pero este uso puede hacerse en forma cuidadosamente controlada.
  14. 14. Existen situaciones poco comunes en las cuales el uso de GOTO puede tener ventajas comparado con otras maneras de expresar un proceso; estos casos son excepcionales y usualmente no ocurren en la programación realizada diariamente. Se deben analizar cuidadosamente las consecuencias de emplear el GOTO, antes de su uso.

×