Existen dos principales tecnicas de diseo de algoritmos de
programacin, el Top Down y el Bottom Up.
Por Wilder Urbaez Atencin: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright. Top Down Tambin conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solucin al problema. Consiste en efectuar una relacin entre las etapas de la estructuracin de forma que una etapa jerrquica y su inmediato inferior se relacionen mediante entradas y salidas de informacin. Este diseo consiste en una serie de descomposiciones sucesivas del problema inicial! que recibe el refinamiento pro"resivo del repertorio de instrucciones que van a formar parte del pro"rama. #a utili$acin de la tcnica de diseo Top-%o&n tiene los si"uientes objetivos bsicos' (implificacin del problema y de los subpro"ramas de cada descomposicin. #as diferentes partes del problema pueden ser pro"ramadas de modo independiente e incluso por diferentes personas. El pro"rama final queda estructurado en forma de bloque o mdulos lo que )ace mas sencilla su lectura y mantenimiento. Bottom Up El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan computari$arse con forme vayan apareciendo! su anlisis como sistema y su codificacin! o bien! la adquisicin de paquetes de soft&are para satisfacer el problema inmediato. Cuando la pro"ramacin se reali$a internamente y )aciendo un enfoque ascendente! es dif*cil lle"ar a inte"rar los subsistemas al "rado tal de que el desempeo "lobal! sea fluido. #os problemas de inte"racin entre los subsistemas son sumamente costosos y muc)os de ellos no se solucionan )asta que la pro"ramacin alcan$a la fec)a limite para la inte"racin total del sistema. En esta fec)a! ya se cuenta con muy poco tiempo! presupuesto o paciencia de los usuarios! como para corre"ir aquellas delicadas interfaces! que en un principio! se i"noran. +unque cada subsistema parece ofrecer lo que se requiere! cuando se contempla al sistema como una entidad "lobal! adolece de ciertas limitaciones por )aber tomado un enfoque ascendente. ,no de ellos es la duplicacin de esfuer$os para acceder el soft&are y mas a-n al introducir los datos. .tro es! que se introducen al sistema muc)os datos carentes de valor. ,n tercero y tal ve$ el mas serio inconveniente delenfoque ascendente! es que los objetivos "lobales de la or"ani$acin no fueron considerados y en consecuencia no se satisfacen. Entonces #a diferencia entre estas dos tcnicas de pro"ramacin se fundamenta en el resultado que presentan frente a un problema dado. /ma"ine una empresa! la cual se compone de varios departamentos (contabilidad! mercadeo! 0)! en cada uno de ellos se fueron presentando problemas a los cuales se le dieron una solucin basados en un enfoque ascendente (1ottom ,p)' creando pro"ramas que satisfac*an slo el problema que se presentaba. Cuando la empresa decidi inte"rar un sistema "lobal para suplir todas las necesidades de todos los departamentos se dio cuenta que cada una de las soluciones presentadas no era compatible la una con la otra! no representaba una "lobalidad! caracter*stica principal de los sistemas. Como no )ubo un previo anlisis! diseo de una solucin a nivel "lobal en todos sus departamentos! centrali$acin de informacin! que son caracter*sticas propias de un diseo %escendente (Top %o&n) y caracter*sticas fundamentales de los sistemas2 la empresa no pudo satisfacer su necesidad a nivel "lobal. #a creacin de al"oritmos es basado sobre la tcnica descendente! la cual brinda el diseo ideal para la solucin de un problema. Fases para la Resolucin de ro!lemas En esta seccin descri!ire !re"emente las #ases o pasos a seguir para la resolucin de pro!lemas con ayuda de la computadora. Anlisis del Problema Esta fase requiere una clara definicin donde se contemple e3actamente lo que debe )acer el pro"rama y el resultado o solucin deseada. %ado que se busca una solucin se precisan especificaciones de entrada y salida. 4ara poder definir bien un problema es conveniente responder a las si"uientes pre"untas' 56u entradas se requieren7 (cantidad y tipo) 5Cul es la salida deseada7 (cantidad y tipo) 56u mtodo produce la salida deseada7 Diseo del Algoritmo En la fase de anlisis en el proceso de pro"ramacin se determina que )ace el pro"rama. En la fase de diseo se determina como )ace el pro"rama la tarea solicitada. #os mtodos utili$ados para el proceso del diseo se basan en el conocido divide y vencers. Es decir la resolucin de un problema complejo se reali$a diviendo el problema en subproblemas y a continuacin dividir estos subproblemas en otros de nivel mas bajo! )asta que sea implementada una solucin en la computadora. Este mtodo se conoce tecnicamente como diseo descendente (top-do&n) o modular. Cada pro"rama bien diseado consta de un pro"rama principal (el mdulo de nivel mas alto) que llama a subpro"ramas (mdulos) de nivel mas bajo! que a su ve$ pueden llamar a otros subpro"ramas. #os mdulos pueden ser planeados! codificados! comprobados y depurados independientemente y a continuacin combinarlos entre s*. Este proceso implica la ejecucin de estos pasos )asta que el pro"rama se )a terminado' 4ro"ramar un mdulo comprobar el mdulo (i es necesario! depurar el mdulo Combinar el mdulo! con el resto de los otros mdulos El diseo del al"oritmo es independiente del len"uaje de pro"ramacin en el que se vaya a codificar posteriormente. Implementacin del Algoritmo 4ara implementar un al"oritmo en la computadora! se debe ejecutar los si"uientes pasos' Codificacin Compilacin y ejecucin 8erificacin %epuracin %ocumentacin Codificacin' Es la escritura en un len"uaje de pro"ramacin de la representacin de un al"oritmo. %ado que el diseo del al"oritmo es independiente del len"uaje de pro"ramacin utili$ado en su implementacin! el cdi"o puede ser escrito con i"ual facilidad en un len"uaje o en otro. Compilacin y ejecucin' ,na ve$ que el al"oritmo se )a convertido en un pro"rama fuente! es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operacin se reali$a con un editor de te3to! posteriormente el pro"rama fuente se convierte en un arc)ivo de pro"rama que se "uarda en un disco. El pro"rama fuente debe ser traducido a len"uaje mquina. Este proceso se reali$a con el compilador y el sistema operativo que se encar"a practicamente de la compilacin. (i al compilar el pro"rama fuente se presentan errores (errores de compilacin)! es necesario volver a editar el pro"rama! corre"ir los errores y compilar de nuevo. Esto se repite )asta que ya no se presenten mas errores! obteniendose el pro"rama objeto! el cual todav*a no es ejecutable directamente. +l ya no e3istir errores en el pro"rama fuente se debe instruir al sistema operativo para que efectue la fase de montaje o enlace! del pro"rama fuente con las librerias del pro"rama del compilador. Este proceso de montaje produce un pro"rama ejecutable. Cuando se )a creado un pro"rama ejecutable este se puede ya ejecutar desde el sistema operativo con solo teclear su nombre. (uponiendo que no e3isten errores durante la ejecucin (errores en tiempo de ejecucin)! se obtendr la salida de resultados correctos del pro"rama. 9esolucin de 4roblemas /ndice :ases para la resolucin ;cont..<