Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Programación Estructurada



    INTRODUCCION

    La computadora
    automática debe su derecho a existir, su utilidad,
    precisamente a su capacidad de efectuar vastos cálculos
    que no pueden realizar los seres humanos. Deseamos que la computadora
    efectúe lo que nunca podríamos hacer nosotros, y la
    potencia de las
    maquinas
    actuales es tal, que inclusive los cálculos
    pequeños, por su tamaño, escapan al poder de
    nuestra imaginación limitada.

    Sin embargo debemos organizar el calculo de manera tal
    que nuestros limitados poderes sean suficientes para asegurar que
    se establecerá el efecto deseado. Esta organización incluye la composición
    de los programas.

    Los avances en la tecnología siempre
    van parejos con progresos en los lenguajes de
    programación y con nuevas ayudas para simplificar el
    uso del computador,
    con lo cual un numero mayor de usuarios se beneficia del. Pero la
    necesidad de hacer programas para
    resolver problemas
    específicos quizás nunca
    desaparecerá.

    CONCEPTO DE PROGRAMACION
    ESTRUCTURADA

    EL creciente empleo de los
    computadores ha conducido a buscar un abaratamiento del desarrollo des
    software,
    paralelo a la reducción del costo del
    hardware obtenido
    gracias a los avances tecnológicos. Los altos costos del
    mantenimiento
    de las aplicaciones en producción normal también han urgido
    la necesidad de mejorar la productividad del
    personal de
    programación.

    En la década del sesenta salieron a la luz publica los
    principios de
    lo que más tarde se llamo Programación Estructurada, posteriormente
    se libero el conjunto de las llamadas "Técnicas para
    mejoramiento de la productividad en
    programación" (en ingles Improved
    Programming Technologies, abreviado IPTs), siendo la Programación Estructurada una de
    ellas.

    Los programas
    computarizados pueden ser escritos con un alto grado de
    estructuración, lo cual les permite ser mas
    fácilmente comprensibles en actividades tales como
    pruebas,
    mantenimiento
    y modificación de los mismos. Mediante la programación Estructurada todas las
    bifurcaciones de control de un
    programa se
    encuentran estandarizadas, de forma tal que es posible leer la
    codificación del mismo desde su inicio hasta su
    terminación en forma continua, sin tener que saltar de un
    lugar a otro del programa
    siguiendo el rastro de la lógica
    establecida por el programador, como es la situación
    habitual con codificaciones desarrolladas bajo otras
    técnicas.

    EN programación Estructurada los programadores
    deben profundizar mas que lo usual al procederá realizar
    el diseño
    original del programa, pero el
    resultado final es más fácil de leer y comprender,
    el objetivo de u
    programador profesional al escribir programas de una
    manera estructurada, es realizarlos utilizando solamente un
    numero de bifurcaciones de control
    estandarizados.

    EL resultado de aplicar la sistemática y
    disciplinada manera de elaboración de programas
    establecida por la Programación Estructurada es una
    programación de alta precisión como nunca antes
    había sido lograda. Las pruebas de los
    programas, desarrollados utilizando este método, se
    acoplan mas rápidamente y el resultado final con programas
    que pueden ser leídos, mantenidos y modificados por otros
    programadores con mucho mayor facilidad.

    DEFINICIONES

    Programación Estructurada es una técnica
    en la cual la estructura de
    un programa, esto
    es, la interpelación de sus partes realiza tan claramente
    como es posible mediante el uso de tres estructuras
    lógicas de control:

    1. Secuencia: Sucesión simple de dos o mas
      operaciones.
    2. Selección: bifurcación condicional de
      una o mas operaciones.
    3. Interacción: Repetición de una
      operación mientras se cumple una
      condición.

    Estos tres tipos de estructuras
    lógicas de control pueden
    ser combinados para producir programas que manejen cualquier
    tarea de procesamiento de información.

    Un programa
    estructurado esta compuesto de segmentos, los cuales puedan estar
    constituidos por unas pocas instrucciones o por una pagina o
    más de codificación. Cada segmento tiene solamente
    una entrada y una salida, estos segmentos, asumiendo que no
    poseen lazos infinitos y no tienen instrucciones que jamas se
    ejecuten, se denominan programas propios. Cuando varios programas
    propios se combinan utilizando las tres estructuras
    básicas de control
    mencionadas anteriormente, el resultado es también un
    programa propio.

    La programación Estructurada esta basada en el
    Teorema de la Estructura, el
    cual establece que cualquier programa propio (un programa con una
    entrada y una salida exclusivamente) es equivalente a un programa
    que contiene solamente las estructuras
    lógicas mencionadas anteriormente.

    Una característica importante en un programa
    estructurado es que puede ser leído en secuencia, desde el
    comienzo hasta el final sin perder la continuidad de la tarea que
    cumple el programa, lo contrario de lo que ocurre con otros
    estilos de programación. Esto es importante debido a que,
    es mucho más fácil comprender completamente
    el trabajo que
    realiza una función determinada, si todas las
    instrucciones que influyen en su acción están
    físicamente contiguas y encerradas por un bloque. La
    facilidad de lectura, de
    comienzo a fin, es una consecuencia de utilizar solamente tres
    estructuras de
    control y de eliminar la instrucción de desvío de
    flujo de control, excepto en circunstancias muy especiales tales
    como la simulación
    de una estructura
    lógica
    de control en un lenguaje de
    programación que no la posea.

    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 ultimo 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 esta
    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.

    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:

    1. Tiene exactamente una entrada y una salida para
      control del programa.
    2. Existen caminos seguibles 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

    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 LOGICAS 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 aveces es usada, dependiendo del
    proceso que se
    este tratando de representar y de las características apropiadas en el lenguaje
    con el cual se esta 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 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 cuales son las instrucciones
    que, en forma conveniente y eficiente, realizan funciones
    establecidas por las diferentes estructuras lógicas de
    control.

    ETIQUETAS E INSTRUCCIÓN 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 limite 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.

    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.

    SEGMENTACION

    Para la comprensión de un programa se haga en
    forma fácil y rápida es necesario que, al
    revisarlo, uno no tenga que hojear una gran cantidad de paginas
    para entender cuales el trabajo que
    realiza. Una regla practica para lograr estos fines es establecer
    que cada segmento del programa no exceda, en longitud, a una
    pagina de codificación, o sea, alrededor de 50
    líneas (el significado que se asigna al termino segmento,
    en este trabajo, no tiene ninguna relación con su
    significado en relación a las funciones de
    sistemas
    operativos o sistemas
    maneadores de Bases de
    Datos).

    La segmentación no es solamente particionar un
    programa en trozos cuya longitud sea de unas 50 líneas;
    esta técnica debe cumplir con ciertas características fundamentales:

    1. La segmentación reflejara la división
      del programa en partes que se relacionen entre sí en
      forma jerárquica, formando una estructura de
      árbol. Esta organización puede ser representada
      gráficamente por un diagrama
      de procesos,
      lo que hace más sencillo comprender la relación
      existente entre un segmento y el resto del programa.
      Adicionalmente, podemos indicar que, el segmento en la cumbre
      de la estructura jerárquica contendrá las
      funciones de
      control de mas alto nivel, mientras que los segmentos
      inferiores en esta organización contendrán funciones
      detalladas.
    2. Una segmentación bien diseñada
      deberá mostrar, claramente, las relaciones existentes
      entre las distintas funciones de manera que sea fácil
      comprender lo que debe hacer el programa y asegurar que
      efectivamente lo realice. Este hecho, garantizara que los
      cambios que se efectúen a una parte del programa,
      durante la programación original o su mantenimiento, no afecten al resto del
      programa que no ha sufrido cambios.
    3. En una segmentación bien realizada la
      comunicación entre segmentos se lleva a cabo de
      una manera cuidadosamente controlada. Algunos autores
      recomiendan que los segmentos consistan en procedimientos y la única comunicación existente entre ellos sea
      a través de una lista de parámetros, esto
      reduce la oportunidad de que interactuen entre ellos de una
      manera indeseada e inentendible.

    IDENTACION

    El uso de la identacion es importante debido a que,
    cuando se es consistente en su utilización, facilita
    la lectura
    del programa al mostrar en una forma gráfica las
    relaciones existentes entre las distintas
    instrucciones.

    La identacion puede ser de gran beneficio, tal como se
    muestra continuación, donde ambos programas realizan la
    misma función, pero el de la derecha es más
    fácil de comprender, verificar y corregir.

    DIRECTRICES PAR IDENTAR

    Debe comprenderse claramente que las líneas
    siguientes solo pretenden presentar unas directrices de
    identacion, sin pretender que estas sean las únicas
    reglas a seguir en este proceso,
    cada centro de procesamiento deberá establecer sus
    propias convenciones, sin que sea motivo de preocupación
    la diferencia respecto a las sugerencias dadas aquí, lo
    importante es que se establezcan unas normas y se
    cumplan de manera consistente.

    Las siguientes son sugerencias para el desarrollo
    de una política de
    identacion en un centro de procesamiento, la idea fundamental
    es ayudar a que el lector de un programa le sea fácil
    comprender las relaciones y las funciones existentes en
    él:

    1. En los lenguajes donde se permite el uso de
      etiquetas, estas deben colocarse lo más externas
      posibles, por ejemplo comenzando en la columna 2, y deben
      estar separadas por una línea (siempre que lo permita
      el
      lenguaje en uso).
    2. Se obtiene consistencia si todas las instrucciones
      se comienzan en una misma columna, por ejemplo en la columna
      4 o cualquier otra ubicada a su derecha.
    3. En los lenguajes en que se hagan declaraciones
      sobre las variables
      a utilizar, la información quedara mas claramente
      representada si los atributos declarados se alinean en forma
      vertical.
    4. El uso de lineas en blanco ayuda a mostrar con mas
      claridad las relaciones existentes entre distintos
      ítems agrupados en las declaraciones
    5. Las instrucciones son mucho mas fáciles de
      localizar y de cambiar si no se escribe mas de una
      instrucción por línea.
    6. La vision de control de las estructuras
      lógicas o de los bloques se clarifica si las
      instrucciones controladas son idénticas por alguna
      cantidad constante. Se sugiere una identacion de tres
      espacios.

    VENTAJAS DE LA PROGRAMACION 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 mas clara puesto que las
      instrucciones están mas 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 mas 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.

    CONCLUSIÓN

    El presente glosario fue
    desarrollado con el propósito de que sirviera de apoyo a
    los estudiantes del área de la computación y de otras áreas que
    utilicen la computación e informática como herramienta.

    BIBLIOGRAFIA

    SANDERS, Donal H.,¨ Informática presente y futuro
    ¨

    Editorial McGraw Hill, México.

    LOZANO, Letvin R., ¨ Diagramación y
    programación ¨

    Editorial McGraw Hill, México.

    NORTON, Peter., ¨ Introducción a la computación ¨

    Editorial McGraw Hill, México.

    FREEDMAN, Alan., ¨ Diccionario de
    computación ¨

    Editorial McGraw Hill, Quinta edición,

    México.

     

     

    Autor:

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter