Martes 25 de Abril de 2017 | Hay 1 usuario online en este momento!
 

Tecnicas de diseño de programas.

Imprimir
Recomendar a un amigo
Recordarme el recurso
Descargar como pdf

Seguinos en en Facebook


INTRODUCCION, TOP DOWN, BOTTOM UP, METODO DE WARNIER ORR, CONCLUSIONES.

Agregado: 29 de AGOSTO de 2000 (Por ) | Palabras: 3047 | Votar! |
1 voto | Promedio: 9
| Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Shareware >
Material educativo de Alipso relacionado con Tecnicas diseno programas
  • CONDUCTISMO Y COGNITIVISMO, RUPTURA ENTRE DOS TEORIAS: ANALISIS DE LOS PROGRAMAS CONDUCTIVISTA Y EL PROCESAMIENTO DE INFORMACION Y LA ADQUISICION
  • La apropiación de los valores estéticos su perspectiva como problema : ...
  • Tema 23: Transmisión de datos.: Principios de la transmision de datos. Banda base. Modulacion de frecuencia. Modulacion en amplitud. Modulacion de fase. Modos de transmision. Tecnicas de multiplexacion. Tipos de conexión. Conmutación.

  • Enlaces externos relacionados con Tecnicas diseno programas

    Indice

    INTRODUCCION............................................................................................2

    TOP DOWN.......................................................................................................4

    BOTTOM UP......................................................................................................17

    METODO DE WARNIER ORR........................................................................18

    CONCLUSIONES.............................................................................................20

    tecnicas de diseño de programas

             El proceso de diseño comprende al desarrollo de una visión conceptual del sistema, el establecimiento de una estructura, la identificación de las cadenas de datos y su almacenamiento, la descomposición de funciones de alto nivel en su subfunciones, el establecimiento de las relaciones e interconexiones entre componentes, el desarrollo de la representación de datos en forma concreta y la especificación de los detalles de los algoritmos.

             Las técnicas de diseño comúnmente están basadas en las estrategias de las jerarquías de ‘’hacia abajo’’ y de ‘’hacia arriba’’ . Por medio del enfoque de arriba a abajo, se pone atención inicialmente en los aspectos globales de todo el sistema ; conforme el diseño progresa, el sistema se descompone en subsistema, poniéndosele el mayor consideración a los detalles específicos. El encadenamiento hacia atrás resulta fundamental en este tipo de diseño. Con el fin de reducir este encadenamiento hacia atrás, muchos diseñadores proponen el uso de una estrategia mezclada, la cual es predominantemente hacia abajo, pero que primero requiere de la especificación de los módulos inferiores. La ventaja primordial de esta estrategia es que se dedica a la atención  a las necesidades del cliente, a las interfaces con el usuario y a la  naturaleza global del problema a resolver.

            

             En el enfoque hacia arriba del diseño de productos de programación, el diseñador primero intenta identificar al conjunto primitivo de objetos acciones y relaciones que proporcionarán una base para la solución del problema ; los conceptos de alto nivel son después formulados en términos del conjunto de primitivos. La estrategia hacia arriba requiere que el diseñador combine las características proporcionadas por el lenguaje de instrumentación para dar entidades son a su vez combinadas hasta que se construye un conjunto de funciones, estructuras de datos e interconexiones para resolver el problema por medio del uso de las facilidades del ambiente de programación existente ; este tipo de diseño puede también requerir del rediseño y el encadenamiento hacia atrás del mismo. El éxito de este enfoque depende de la identificación del conjunta adecuado de ideas primitivas que sean suficientes para la instrumentación del sistema.

    Top down

             El diseño descendente es una técnica que permite diseñar la solución de un problema con base en la modularización o segmentación dándole un enfoque de arriba hacia abajo (Top Down Design).  Esta solución se divide en módulos que se estructuran e integran jerárquicamente, como si fuera el organigrama de una empresa. Ejemplo :

    ALGORITMO 

    ALGO


                        MODULO                      MODULO                MODULO

                            UNO                             DOS                        TRES

             En el diagrama anterior se muestra la estructura del algoritmo ALGO, que se auxilia de tres módulos subordinados, cada uno de los cuales ejecuta una tarea especifica. En su momento el modulo principal ALGO invocara o llamara a los módulos subordinados, es decir, dirigirá su funcionamiento.

    ¿ Que es un modulo ?

             Un modulo es un segmento, rutina, subrutina, subalgoritmo o procedimiento, que puede  definirse dentro de un algoritmo con el fin de ejecutar una tarea especifica y puede ser llamado o invocado desde el algoritmo principal cuando sea necesario.

    ¿ Cuando es útil la modularización ?

             Este enfoque de segmentación o modularizacion es útil en dos casos :

    1.    Cuando existe un grupo de instrucciones o una tarea especifica que deba ejecutarse en más de una ocasión.

    2.   Cuando un problema es complejo o extenso, la solución se “divide” o “segmenta” en módulos que ejecutan “partes” o tareas especificas . Dicha solución se organiza de forma similar a como lo hacen las empresas cuando se estructuran con base en las funciones para realizar sus actividades ; en otras palabras, el trabajo se divide en partes que sean fácilmente manejables y que , lógicamente, puedan ser separadas ; así, cada una de estas partes se dedica a ejecutar una determinada tarea, lo que redundara en una mayor concentración , entendimiento y capacidad de solución a la hora de diseñar la lógica de cada una de estas. Dichas partes son módulos o segmentos del algoritmo, algunos de ellos son los módulos directivos o de control, que son los que se encargaran de distribuir el trabajo de los demás módulos. De esta manera se puede diseñar un organigrama que indique la estructura general de un algoritmo.

             En el diagrama anterior se tiene un modulo directivo llamado algoritmo ALGO, que dirige el funcionamiento de tres módulos subordinados, que son : MODULO UNO, MODULO DOS y MODULO TRES .

    PROCESO DE MODULARIZACION.

             El proceso de segmentación consiste en hacer una abstracción del problema, del cual se tiene inicialmente un panorama general. Enseguida, se procede a “desmenuzar” o “dividir” el problema en partes pequeñas y simples, como se muestra :

    1.    Se forma un primer modulo enunciando el problema en términos de la solución a éste.

    EJEMPLO :

             Se necesita diseñar un algoritmo que ayude a un niño a  revisar sus tareas referentes a las operaciones aritméticas fundamentales : sumar, restar, multiplicar y dividir. El proceso es el siguiente :

             Se ofrecerá un menú de opciones para escoger lo que desee hacer, de acuerdo con el siguiente formato :

    TE PUEDO AYUDAR A :

    1.    SUMAR

    2.   RESTAR

    3. MULTIPLICAR

    4. DIVIR

    5. FIN

                                                          OPCION

             En el caso de la suma el procedimiento es el siguiente : leer los dos números y el resultado obtenido por el niño, hacer el calculo de la maquina, comparar ambos resultados y decirle si esta correcto o incorrecto. Se le puede permitir realizar las revisiones de operaciones de suma que sean necesarias. Para el caso de la resta, multiplicación y división se seguirá un procedimiento similar, claro está, con las diferencias existentes.

    APLICACIÓN :     Aplicar lo enunciado en este punto y si se considera que se trata de un algoritmo que ayuda a un niño en la revisión de sus tareas, se tiene el modulo principal siguiente :

    ALGORITMO

    AYUDA

    2. Se toma este modulo y se busca la forma de dividirlo en otros módulos más pequeños, que ejecuten tareas o funciones especificas. Las mismas funciones que se desea que ejecute el algoritmo, nos darán la pauta para definir los módulos, y así hacer una segmentación de la solución del problema en partes manejables.

    APLICACIÓN :

             Si nos referimos al  ejemplo anterior, tenemos que se deben mantener cuatro tareas o funciones claramente definidas : sumar, restar, multiplicar y dividir, de ahí que necesitamos un modulo para cada una de las tareas, las cuales deberán estar subordinadas al modulo principal. La estructura que se tiene, entonces, es la siguiente :

    ALGORITMO

                 AYUDA          1


                MODULO             MODULO             MODULO             MODULO

                                 2                           3                              4                          5

                SUMAR               RESTAR           MULTIPLICAR         DIVIDIR

    NOTA :Los módulos se numeran de arriba hacia abajo y de izquierda a derecha.

    3. Se repite el paso 2 para cada módulo nuevo definido, hasta llegar a un nivel de detalle adecuado, es decir, hasta hacer que cada modulo ejecute una tarea especifica, que este claramente definida y que el diseño de la lógica del mismo resulte fácil  utilizando el pseudocódigo.

    APLICACIÓN :

             En el problema que estamos analizando, se revisan los sumar, restar, multiplicar y dividir. Se considera que estos tienen un nivel de detalle adecuado, porque cada modulo hace una tarea muy simple, clara y especifica y, en consecuencia, se pueden diseñar fácilmente utilizando el pseudocódigo.

             En caso de no ser así, es decir, que el módulo restar, por ejemplo, requiera otros módulos subordinados, la escritura general del algoritmo sería la siguiente :

    ALGORITMO

                                    1

    AYUDA


              MODULO             MODULO             MODULO             MODULO     

                                    2                           3                              7                      8

                   SUMAR                RESTAR          MULTIPLICAR         DIVIDIR


                        MODULO            MODULO          MODULO    

                                            4                        5                         6

                             R1                        R2                      R3    

             Como se puede ver la numeración sufre ciertas alteraciones, es decir, cuando se llega al modulo restar se enumera todo lo que dependa de este, para después continuar con el de multiplicar que es el siguiente en el orden.

             En este caso, el modulo de restar se convierte a su vez en un modulo directivo que controla la ejecución de sus módulos subordinados.

    FORMA DE UTILIZAR EL DISEÑO DESCENDENTE CON PSEUDOCÓDIGO :

             Cuando el enfoque de diseño descendente se utiliza de manera conjunta con la técnica del pseudocódigo, se logra una herramienta de diseño de algoritmos muy poderosa.

    Procedimiento para usar dicha herramienta :

    1.    Se tiene el análisis de un problema.

    2.   Se diseña la estructura general del algoritmo utilizando el diseño descendente.

    3.   Se toma cada modulo y se diseña su lógica utilizando el pseudocódigo.

    COMO LLAMAR MODULOS EN PSEUDOCODIGO :

             Llamar NOM_MODULO

    DONDE :

    Llamar identifica la acción de llamar o invocar a los módulos.

    NOM_MODULO es el nombre del modulo que se esta llamando.

    EJEMPLO :

             A continuación se presenta el diseño de la solución completa del problema relacionado con el diseño del algoritmo que ayude a un niño en la revisión de sus tareas de operaciones aritméticas fundamentales.

             La estructura del algoritmo es :

    ALGORITMO

                                       1

    AYUDA


                   MODULO           MODULO            MODULO                 MODULO     

                                    2                         3                                  4                         5

                      SUMA                RESTA       MULTIPLICACION       DIVISION   

             El siguiente paso es diseñar la lógica de cada modulo utilizando el pseudocódigo.

    1.   Algoritmo AYUDA

    a.  Definir variables

                       N1,N2, RESNI, RESMA : Entero

                       DESEA OTRO : Alfabético  [1]

                       OPCION : Entero

    b. REPEAT

    1.   Imprimir el menú de opciones

                                                          TE PUEDO AYUDAR A :

    1.    SUMAR

    2.   RESTAR

    3.   MULTIPICAR

    4.   DIVIDIR

    5.   FIN

                                                              ESCOGER OPCION :          

     

    2. Leer OPCION

    3. CASE (1,2,3,4) OPCION

                                       1 : Llamar SUMAR

                                       2 : Llamar RESTAR

                                       3 : Llamar MULTIPLICAR

                                       4 : Llamar DIVIDIR

    4. ENDCASE

    c.  UNTIL OPCION= 5

    d.  Fin

    2. Modulo SUMAR

    a.  REPEAT

    1.   Solicitar numero uno, numero dos y resultado

    2. Leer N 1, N2, RESNI

    3. Calcular RESMA= N 1 + N2

    4. IF RESMA = RESNI THEN

    a.  Imprimir ‘correcto’

    5. ELSE

    b. Preguntar ‘¿Desea seguir intentando (S/N) ?’

    c.  Leer OTRO

    d.  DOWHILE OTRO= ?S ?

                                                  1. Leer RESNI

    2. IF RESNI = RESMA THEN

    a.  Imprimir ‘correcto’

    b. OTRO= ‘N’

    3. ELSE

    a.  Imprimir ‘incorrecto’

    b. Preguntar ‘¿Desea seguir (S/N) ?’

    c.  Leer otro

    4. ENDIF

    e.  ENDO

    6. ENDIF

    7. Solicitar ‘¿Desea sumar de nuevo(S/N) ?’

    8. Leer DESEA

    b. UNTIL DESEA = ‘N ‘

    c.  Fin modulo SUMAR

    3. Modulo RESTAR

    a.  REPEAT

    1.   Solicitar número uno, numero dos y resultados

    2. Leer N1,N2,RESNI

    3. Calcular RESMA = N1-N2

    4. IF RESMA= RESNI THEN

    a.  imprimir ‘correcto’

    5. ELSE

    a.  imprimir ‘incorrecto’

    b. Preguntar ‘¿Desea seguir intentando (S/N) ?’

    c.  Leer OTRO

    d.  DOWHILE OTRO=’S’

    1.   Leer RESNI

    2. IF RESNI = RESMA THEN

    a.  Imprimir ‘correcto’

    b. OTRO=’N’

    3. ELSE

    a.  Imprimir ‘ incorrecto ‘

    b. Preguntar ‘¿Desea seguir (S/N) ?’

    c.  Leer OTRO

    4. ENDIF

    e.  ENDDO

    6. ENDIF

    7. Preguntar ‘¿Desea restar de nuevo (S/N) ?’

    8. Leer DESEA

    b. UNTIL DESEA=’N’

    c.  Fin modulo RESTAR

    4. Modulo MULTIPLICAR

    a.  REPEAT

    1.   Solicitar numero uno, numero dos y resultado

    2. Leer N1,N2,RESNI

    3. Calcular RESMA=N1*N2

    4. IF RESMA=RESNI THEN

    a.  Imprimir ‘correcto’

    5. ELSE

    a.  Imprimir ‘incorrecto’

    b. Preguntar ‘¿desea seguir intentando (S/N) ?’

    c.  Leer OTRO

    d.  DOWHILE OTRO=’S’

    1.   Leer RESNI

    2. IF RESNI = RESMA THEN

    a.  Imprimir ‘correcto’

    b. OTRO=’N’

    3. ELSE

    a.  Imprimir ‘incorrecto

    b. Solicitar ‘¿Desea seguir intentando (S/N) ?’

    c.  Leer OTRO

    4. ENDIF

    e.  ENDDO

    6. ENDIF

    7. Solicitar ‘¿Desea multiplicar de nuevo (S/N) ?’

    8. Leer DESEA

    b. UNTIL DESEA= ‘N’

    c.  Fin modulo MULTIPLICAR

    5. Modulo DIVIDIR

    a.  REPEAT

    1.   Solicitar numero uno, numero dos y resultado

    2. Leer N1, N2, RESNI

    3. Calcular RESMA=N1/N2

    4. IF RESMA=RESNI THEN

    a.  Imprimir ‘correcto’

    5. ELSE

    a.  Imprimir ‘incorrecto’

    b. Preguntar ‘¿Desea seguir intentando (S/N) ?’

    c.  Leer OTRO

    d.  DOWHILE OTRO=’S’

    1.   Leer RESNI

    2. IF RESMI=RESMA THEN

    a.  Imprimir ‘correcto’

    b. OTRO=’N’

    3. ELSE

    a.  Imprimir ‘incorrecto’

    b. Preguntar ‘¿Desea seguir intentando (S/N) ?’

    c.  Leer OTRO

    4. ENDIF

    e.  ENDDO

    6. ENDIF

    7. Solicitar ‘¿Desea dividir de nuevo (S/N) ?’

    8. Leer DESEA

    b. UNTIL DESEA=’N’

    c.  Fin modulo DIVIDIR

    FUNCIONES

             La función es una estructura autónoma similar a los módulos. La diferencia radica en que la función se relaciona especificando su nombre en una expresión, como si fuera una variable ordinaria de tipo simple. Las funciones se dividen en estándares y definidas por el usuario.

    FUNCIONES ESTANDAR

             Son funciones proporcionadas por cualquier lenguaje de programación de alto nivel, y se dividen en aritméticas y alfabéticas.

    ARITMETICAS : seno, coseno, Arctan(arco tangente), Ln (logaritmo natural),Exp ( e elevada a la x potencia),Absoluto,

    redondeo, cuadrado, raiz, truncar, fracción.

    ALFABETICAS : carácter, ordinal, concatenar,borrar,insertar, longitud, posicion, NUMCAD(convierte el valor numérico real o entero en cadena),CADNUM(convierte la cadena en un numero real o entero).

    FUNCIONES DEFINIDAS POR EL USUARIO

             Son funciones que puede definirlas el programador con el propósito de ejecutar alguna función especifica, y que por lo general se usan cuando se trata de hacer algún calculo que será requerido en varias ocasiones en la parte principal del algoritmo.

             El nombre de la función puede estar seguido de  uno o mas para metros actuales encerrados entre paréntesis. Por lo general transfieren datos a parámetros tipo valor.

    Bottom up

             La diferencia del tipo de diseño ascendente y descendente solo se puede dar a la hora de la programación. Porque en el momento de dibujar la estructura del problema, en las dos formas el diseño queda igual, solamente que los módulos son enumerados en forma diferente, pero esto se hace pensando ya en como se va a comenzar a programar. En el diseño ascendente primero se programan los módulos que se encuentran mas abajo de la estructura, hasta llegar al primer modulo dibujado.

             Tomando un ejemplo del diseño descendente la estructura quedaría como sigue :                                               

    Ejercicio : Realiza el diseño ascendente para la gestión del control de un hotel utilizando la siguiente información :

    ·      pagos a empleados (nombre, puesto, sueldo, horas extra)

    ·      prestamos externos (cliente, préstamo, aval, plazo)

    ·      libro de reservaciones(nombre, departamento, entrada, salida)

    ·      mantenimiento (área, daños, total)

    Esta gráfica muestra los módulos generales que va a contener el programa.

    SUBPROGRAMA

    CONTROL 20


    SUBPROGRAMA  SUBPROGRAMA    SUBPROGRAMA            SUBPROGRAMA    

           PAGOS A         PRESTAMOS       LIBROS DE                  MANTENIMIENTO

    EMPLEADOS 5         EXTERNOS       RESERVACIONES  15     19

    WARNIER ORR

             Los diagramas de Warnier/Orr (también conocidos como construcción lógica de programas/construcción lógica de sistemas) fueron desarrollados inicialmente en Francia por Jean Dominique Warnier y en los Estados Unidos por Kenneth Orr. Este método ayuda al diseño de estructuras de programas identificando la salida y resultado del procedimiento, y entonces trabaja hacia atrás para determinar los pasos y combinaciones de entrada necesarios para producirlos. Los sencillos métodos gráficos usados en los diagramas de Warnier/Orr hacen evidentes los niveles en un sistema y más claros los movimientos de los datos en dichos niveles.

    ELEMENTOS BASICOS

             Los diagramas de Warnier/Orr muestran los procesos y la secuencia en que se realizan. Cada proceso se define de una manera jerárquica ; es decir, consta de conjuntos de subprocesos que lo definen, en cada nivel, el proceso se muestra en una llave que agrupa a sus componentes. Puesto que un proceso puede tener muchos subprocesos distintos, un diagrama de Warnier/Orr usa un conjunto de llaves para mostrar cada nivel del sistema.

    USO DE DIAGRAMAS DE WARNIER/ORR

             la capacidad de mostrar la relación entre procesos y pasos de un proceso no es exclusiva de los diagramas de Warnier/Orr, así como tampoco lo es el uso de la iteración, selección de alternativas o el tratamiento de casos individuales. Tanto los diagramas de flujo estructurado y los métodos del español estructurado logran eso también. Sin embargo, el enfoque que se usa para desarrollar las definiciones de un sistema por medio de estos diagramas es distinto y se adapta y se adaptan bien a los que se usan en el diseño de sistemas lógicos.

             Para desarrollar un diagrama de Warnier/Orr , el analista trabaja hacia atrás, empezando con la salida del sistema y usando un análisis orientado hacia la salida. En el papel el desarrollo se mueve de izquierda a derecha. En primer lugar, se definen la salida o resultados esperados del procedimiento. En el nivel siguiente, mostrado mediante la inclusión por medio de una llave, se definen los pasos necesarios para producir la salida. A su vez, cada paso se define un poco mas. Las llaves adicionales agrupan los procesos requeridos para producir el resultado en el siguiente nivel.

             Los diagramas de Warnier/Orr ofrecen a los expertos en sistemas algunas ventajas distintivas. Son simples en apariencia y fáciles de entender. Aun así, son poderosas herramientas de diseño. Tienen la ventaja de mostrar agrupaciones de procesos y los datos que deben transferirse de nivel a nivel. Además, la secuencia del trabajo hacia atrás garantiza que el sistema estará orientado hacia el resultado.

    Conclusiones

             En esta investigación abarcamos tres diferentes técnicas de diseño las cuales son el TOP DOWN, BOTTOM UP y el WARNIER/ORR.

             La técnica TOP DOWN también es conocida como arriba-abajo y consiste en una serie de niveles de menor a mayor complejidad que dan solución al problema, en esencia consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionan mediante la entrada y salida de información.

             La técnica BOTTOM UP es conocida también como ascendente, la diferencia entre  el bottom up y el top down es que los módulos son enumerados de forma diferente. En el bottom up se enumeran primero los módulos inferiores hasta llegar al modulo superior.

             El método Warnier/Orr se trata de un método para la representación de programas cuyo resultado final se llama diagrama de Warnier. En el podemos utilizar toda la terminología estudiada hasta ahora en lo que respecta a identificadores, constantes, variables, expresiones y operadores, teniendo en cuenta que la característica fundamental es la forma de diseñar el programa que será descendentemente y la representación utilizada.

            


     
    Sobre ALIPSO.COM

    Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.

    Contacto »
    Contacto

    Teléfono: +54 (011) 3535-7242
    Email:

    Formulario de Contacto Online »