Professional Documents
Culture Documents
Ejemplo
-Este mtodo consiste en dividir los problemas en subproblemas mas sencillos para conseguir una solucin mas rpida. El diseo descendente es un mtodo para resolver el problema que posteriormente se traducir a un lenguaje comprensible por la computadora.
El diseo descendente (top-down) es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento. La metodologa descendiente consiste en efectuar una relacin entre las sucesivas etapas de estructuracin de modo que se relacionen unas con otras mediante entradas y salidas de informacin. es decir, se descompone el problema en etapas o estructuras jerrquicas, de forma que se puede considerar cada estructura desde dos puntos de vista; que hace? y como lo hace? 4.2 BOTTOM UP
Bottom
up
Es un principio de muchos aos del estilo de programacin que los elementos funcionales de un programa no deben ser demasiado grandes. Si un cierto componente de un programa crece ms all de la etapa donde est fcilmente comprensible, se convierte en una masa de la complejidad que encubre errores tan fcilmente 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 ms grande es el programa, ms deben ser divididas. Cmo usted divide un programa? El acercamiento tradicional se llama diseo de arriba hacia abajo: usted dice que "el propsito 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, "etctera. Este proceso contina hasta que el programa entero tiene el nivel derecho del granularity -- cada parte bastante grande hacer algo substancial, pero bastante pequeo para ser entendido como sola unidad. Los programadores experimentados del lisp se dividen encima de sus programas diferentemente. As como diseo de arriba hacia abajo, siguen un principio que se podra llamar diseo bottom-up -- cambiando la lengua al juego el problema. En el lisp, usted apenas no anota su programa hacia la lengua, usted tambin construye la lengua para arriba hacia su programa. Pues usted est escribiendo un programa usted puede pensar "deseo que el lisp tena tal-y-tal un operador." Usted va tan escribirlo. Usted realiza luego que eso usar al nuevo operador simplificara el diseo de otra parte del programa, etctera. La lengua y el programa se desarrollan juntos. Como la frontera entre dos estados que guerrean, el lmite entre la lengua y el programa se dibuja y el redrawn, hasta l viene eventual reclinarse a lo largo de las montaas y de los ros, las fronteras naturales de su problema. En el extremo su programa mirar como si la lengua hubiera sido diseada para ella. Y cuando la lengua y el programa caben uno otro bien, usted termina para arriba con el cdigo que es claro, pequeo, y eficiente. Es digno de acentuar que el diseo 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 monoltico, usted conseguir una lengua ms grande con operadores ms abstractos, y un programa ms pequeo escrito en l. En vez de un lintel, usted conseguir un arco. En cdigo tpico, una vez que usted abstraiga fuera de las piezas que son simplemente contabilidad, se deja qu es mucho ms corto; cuanto ms arriba usted acumula la lengua, menos la distancia que usted tendr que viajar de la tapa abajo ella. Esto trae varias ventajas:
El diseo bottom-up es posible a cierto grado en idiomas con excepcin del lisp. Siempre que usted vea funciones de biblioteca, el diseo bottom-up est sucediendo. Sin embargo, el lisp le da energas mucho ms amplias en este departamento, y aumentar la lengua desempea un papel proporcionalmente ms grande en estilo del lisp -- tanto de modo que el lisp no sea justo una diversa lengua, solamente una diversa manera entera de la programacin.