Introducción a la metodología de diseño descendente
Introducción a la metodología de diseño descendente
Introducción a la metodología de diseño descendente
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
© FUOC • P05/75062/00112 10 <strong>Introducción</strong> a <strong>la</strong> <strong>metodología</strong> <strong>de</strong> <strong>diseño</strong> <strong>de</strong>scen<strong>de</strong>nteen algún criterio guiado por <strong>la</strong>s abstracciones que creyésemos convenientes<strong>de</strong>l problema.Para ilustrar los conceptos que se dan en este apartado, os proponemos el siguienteproblema:Una editorial está interesada en analizar los errores <strong>de</strong> un texto presentado por un autor<strong>de</strong> materiales. Nos encarga diseñar un algoritmo, que, una vez realizado el análisis <strong>de</strong> errores<strong>de</strong> un texto, nos indique el porcentaje <strong>de</strong> frases, <strong>la</strong> media <strong>de</strong> pa<strong>la</strong>bras por frase y elmáximo <strong>de</strong> pa<strong>la</strong>bras por frase que <strong>de</strong>ben ser corregidos. Si no es necesario hacerlo, no sedice nada en <strong>la</strong> salida.En <strong>la</strong> entrada <strong>de</strong>l algoritmo tendremos un texto como secuencia <strong>de</strong> caracteres. Cada frasetermina con una pa<strong>la</strong>bra que finaliza, a su vez, con un punto.Cada pa<strong>la</strong>bra está separada <strong>de</strong> <strong>la</strong> siguiente por un único espacio. En el caso <strong>de</strong> que <strong>la</strong> pa<strong>la</strong>braacabe en punto, el espacio aparece a continuación <strong>de</strong>l punto. En el inicio <strong>de</strong>l textono hay espacios. Las pa<strong>la</strong>bras que <strong>de</strong>ben ser corregidas contienen uno o más signos <strong>de</strong>asterisco “*”. Si <strong>la</strong> pa<strong>la</strong>bra consiste sólo en el carácter asterisco, se trata también <strong>de</strong> unacorrección que es preciso hacer (una pa<strong>la</strong>bra que se tiene que añadir, por ejemplo).Se ha convenido en que el final <strong>de</strong>l texto original se marcará por una frase que no tieneninguna pa<strong>la</strong>bra; simplemente aparecerá el carácter <strong>de</strong> punto <strong>de</strong> final <strong>de</strong> frase.Por ejemplo, si en <strong>la</strong> entrada tenemos:Ho<strong>la</strong> qu* tal. Como B*a to*o. .En <strong>la</strong> salida tendremos:100 1.5 2El <strong>diseño</strong> pue<strong>de</strong> llegar a ser complicado si pensamos en <strong>la</strong> aplicación a partir <strong>de</strong><strong>la</strong> secuencia <strong>de</strong> caracteres. En cambio, si lo p<strong>la</strong>nteamos proponiendo un conjunto<strong>de</strong> abstracciones que son naturales y convenientes para el problema, el <strong>de</strong>sarrolloresultará más sencillo <strong>de</strong> hacer. Aquí nos resulta útil pensar que el textoes una secuencia <strong>de</strong> frases y proponer un algoritmo que vaya obteniendo y tratandocada una. Después nos ocuparíamos <strong>de</strong>l siguiente nivel, que consiste enp<strong>la</strong>ntear el subproblema <strong>de</strong> cómo obtener una frase, el subproblema <strong>de</strong> cómotratar<strong>la</strong>, y cómo i<strong>de</strong>ntificar también que se trata <strong>de</strong> <strong>la</strong> última frase. La consi<strong>de</strong>ración<strong>de</strong> una frase como una secuencia <strong>de</strong> pa<strong>la</strong>bras nos será conveniente y darálugar a <strong>la</strong> creación <strong>de</strong> los subproblemas <strong>de</strong>dicados a <strong>la</strong>s pa<strong>la</strong>bras, que se resolveránen el último nivel como problemas <strong>de</strong> secuencia <strong>de</strong> caracteres.El uso <strong>de</strong> <strong>la</strong>s abstracciones frase y pa<strong>la</strong>bra es propio <strong>de</strong>l problema y natural a éste;su correspon<strong>de</strong>ncia en un nivel <strong>de</strong> <strong>de</strong>scomposición hace que nos podamos concentraren los <strong>de</strong>talles más concretos <strong>de</strong> una abstracción, y que <strong>de</strong>jemos paramás a<strong>de</strong><strong>la</strong>nte los <strong>de</strong>talles <strong>de</strong> <strong>la</strong>s abstracciones que estén pendientes <strong>de</strong> resolver.Debemos procurar que cada nivel tenga un número <strong>de</strong> <strong>de</strong>talles que lo haga fácil<strong>de</strong> seguir y que asegure <strong>la</strong> corrección <strong>de</strong> <strong>la</strong>s soluciones p<strong>la</strong>nteadas.1.2. ¿Análisis ascen<strong>de</strong>nte o <strong>de</strong>scen<strong>de</strong>nte?El primer nivel <strong>de</strong> <strong>de</strong>scomposición es el más abstracto, mientras que los siguienteslo son menos o, dicho <strong>de</strong> otro modo, son más concretos, hasta llegar