Translate

UNIDAD IV: TÉCNICAS DE DISEÑO


Técnica de diseño

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''.

Top dow

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 UNO, MODULO DOS, MODULO 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 específica. En su momento el modulo principal ALGO invocara o llamara a los módulos subordinados, es decir, dirigirá su funcionamiento.

¿Qué es un módulo?

Un módulo es un segmento, rutina, subrutina, subalgoritmo o procedimiento, que puede definirse dentro de un algoritmo con el fin de ejecutar una tarea específica y puede ser llamada o invocada desde el algoritmo principal cuando sea necesario.

¿Cuándo es útil la modularización?

Este enfoque de segmentación o modularizacion es útil en dos casos:
Ù  Cuando existe un grupo de instrucciones o una tarea específica que deba ejecutarse en más de una ocasión.
Ù  Cuando un problema es complejo o extenso, la solución se “divide” o “segmenta” en módulos que ejecutan “partes” o tareas específicas. 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 módulo 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

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 estándar
Son funciones proporcionadas por cualquier lenguaje de programación de alto nivel, y se dividen en aritméticas y alfabéticas.

  • Aritméticas:Seno, Coseno, Arctan(arco tangente), Ln (logaritmo natural),Exp ( e elevada a la x potencia),Absoluto, Redondeo, Cuadrado, Raíz, Truncar, Fracción.
  • Alfabéticas: Carácter, Ordinal, Concatenar, Borrar, Insertar, Longitud, Posición, NUMCAD(convierte el valor numérico real o entero en cadena),CADNUM(convierte la cadena en un número real o entero).
  • Funciones definidas por el usuario: Son funciones que puede definirlas el programador con el propósito de ejecutar alguna función específica, y que por lo general se usan cuando se trata de hacer algún cálculo que será requerido en varias ocasiones en la parte principal del algoritmo.

El nombre de la función puede estar seguido de uno o más pará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 cómo se va a comenzar a programar. En el diseño ascendente primero se programan los módulos que se encuentran más abajo de la estructura, hasta llegar al primer módulo 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)
Préstamos 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 SUBPROGRAMASUBPROGRAMASUBPROGRAMA
PAGOS A PRESTAMOS LIBROS 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 básicos

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.