UNIDAD CUATRO
TECNICAS DE DISEÑO
La programación estructurada es el conjunto de técnicas para desarrollar programas fáciles de escribir, verificar, leer (legibles por el usuario) y mantener (modificables).
Se puede concretar mas la definición diciendo que la programación estructurada es el conjunto de técnicas de programación que incluye:
Þ Un numero limitado de estructuras de control.
Þ Diseño descendente.
Þ descomposición modular, con independencia de los módulos.
Técnica top-down
-Este método consiste en dividir los problemas en subproblemas mas sencillos para conseguir una solución mas rápida. El diseño descendente es un método para resolver el problema que posteriormente se traducirá a un lenguaje comprensible por la computadora.
El diseño descendente (top-down) es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento. La metodología descendiente consiste en efectuar una relación entre las sucesivas etapas de estructuración de modo que se relacionen unas con otras mediante entradas y salidas de información. es decir, se descompone el problema en etapas o estructuras jerárquicas, de forma que se puede considerar cada estructura desde dos puntos de vista; que hace? y como lo hace?
Bottom up
Es un principio de muchos años del
estilo de programación que los elementos funcionales de un programa no deben
ser demasiado grandes. Si un cierto componente de un programa crece más allá
de la etapa donde está fácilmente comprensible, se convierte en una masa de
la complejidad que encubre errores tan fácilmente como una ciudad grande encubre
a fugitivos. Tal software será duro de leer, duro probar, y duro eliminar
errores.
De acuerdo con este principio, un programa grande se debe dividir en pedazos,
y cuanto más grande es el programa, más deben ser divididas. ¿Cómo usted divide
un programa? El acercamiento tradicional se llama diseño de arriba hacia
abajo: usted dice que "el propósito del programa es hacer estas siete
cosas, así que lo divido en siete subprogramas importantes. El primer subprograma
tiene que hacer estas cuatro cosas, así que alternadamente tendrá cuatro de
sus propios subprogramas, "etcétera. Este proceso continúa hasta que
el programa entero tiene el nivel derecho del granularity -- cada parte bastante
grande hacer algo substancial, pero bastante pequeño para ser entendido como
sola unidad.
Los programadores experimentados del lisp se dividen encima de sus programas
diferentemente. Así como diseño de arriba hacia abajo, siguen un principio
que se podría llamar diseño bottom-up -- cambiando la lengua al juego
el problema. En el lisp, usted apenas no anota su programa hacia la lengua,
usted también construye la lengua para arriba hacia su programa. Pues usted
está escribiendo un programa usted puede pensar "deseo que el lisp tenía
tal-y-tal un operador." Usted va tan escribirlo. Usted realiza luego
que eso usar al nuevo operador simplificaría el diseño de otra parte del programa,
etcétera. La lengua y el programa se desarrollan juntos. Como la frontera
entre dos estados que guerrean, el límite entre la lengua y el programa se
dibuja y el redrawn, hasta él viene eventual reclinarse a lo largo de las
montañas y de los ríos, las fronteras naturales de su problema. En el extremo
su programa mirará como si la lengua hubiera sido diseñada para ella. Y cuando
la lengua y el programa caben uno otro bien, usted termina para arriba con
el código que es claro, pequeño, y eficiente.
Es digno de acentuar que el diseño bottom-up no
significa la escritura justa el mismo programa en una diversa orden. Cuando
usted trabaja bottom-up, usted termina generalmente para arriba con un diverso
programa. En vez de un solo, programa monolítico, usted conseguirá una lengua
más grande con operadores más abstractos, y un programa más pequeño escrito
en él. En vez de un lintel, usted conseguirá un arco.
En código típico, una vez que usted abstraiga fuera de las piezas que son
simplemente contabilidad, se deja qué es mucho más corto; cuanto más arriba
usted acumula la lengua, menos la distancia que usted tendrá que viajar de
la tapa abajo ella. Esto trae varias ventajas:
El diseño bottom-up es posible a cierto grado
en idiomas con excepción del lisp. Siempre que usted vea funciones de biblioteca,
el diseño bottom-up está sucediendo. Sin embargo, el lisp le da energías mucho
más amplias en este departamento, y aumentar la lengua desempeña un papel
proporcionalmente más grande en estilo del lisp -- tanto de modo que el lisp
no sea justo una diversa lengua, solamente una diversa manera entera de la
programación.