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 15 <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>nteescribirResultadosAnalisis(ResultadosAnalisisTexto);{ Post: en el caso <strong>de</strong> que no sea necesario corregir T no se escribe nada. En el caso <strong>de</strong>que T sea un texto por corregir, se generará en <strong>la</strong> salida una secuencia R formadapor tres elementos:R1 representa <strong>la</strong> media <strong>de</strong> pa<strong>la</strong>bras que hay que corregir por frase <strong>de</strong> T.R2 representa el porcentaje <strong>de</strong> frases que hay que corregir en T.R3 representa el máximo <strong>de</strong> pa<strong>la</strong>bras que hay que corregir por frase <strong>de</strong> T }falgoritmoObservad que <strong>la</strong> última solución presentada por el primer nivel tiene <strong>la</strong> particu<strong>la</strong>ridad<strong>de</strong> ser sintácticamente correcta. Sin embargo, no es completa porque faltapor <strong>de</strong>finir el tipo tFrase y un conjunto <strong>de</strong> acciones y/o funciones (obtenerFrase, yultimaFrase), y el tipo tDatosAnalisis con sus acciones (inicioResultadosAnalisis, actualizaResultadosAnalisis,y escribirResultadosAnalisis), que se <strong>de</strong>berán <strong>de</strong>finir en unsegundo nivel.A pesar <strong>de</strong> que no es completa, hay otra ventaja que po<strong>de</strong>mos aprovechar: po<strong>de</strong>mosrazonar <strong>la</strong> corrección <strong>de</strong> <strong>la</strong> solución hasta ahora formu<strong>la</strong>da sin necesidad<strong>de</strong> conocer los <strong>de</strong>talles <strong>de</strong> los tipos aún no <strong>de</strong>finidos, ni <strong>de</strong> cómo <strong>la</strong>sacciones y/o funciones realizarán el efecto que se espera <strong>de</strong> el<strong>la</strong>s, que todavíaestán por <strong>de</strong>sarrol<strong>la</strong>r. La especificación <strong>de</strong> cada una <strong>de</strong> <strong>la</strong>s acciones o funcionesque hay que <strong>de</strong>sarrol<strong>la</strong>r nos indica cuál es su efecto; a partir <strong>de</strong> aquí po<strong>de</strong>mosrazonar <strong>la</strong> corrección <strong>de</strong> <strong>la</strong> solución formu<strong>la</strong>da. Cuando se <strong>de</strong>sarrolle el siguientenivel, si <strong>la</strong>s acciones o funciones <strong>de</strong>sarrol<strong>la</strong>das respetan sus precondiciones ypostcondiciones, se mantendrá <strong>la</strong> corrección <strong>de</strong>l nivel actual. La especificaciónjuega aquí un papel importante <strong>de</strong> puente entre niveles, ya que ayuda a separarel qué <strong>de</strong>l cómo.La corrección <strong>de</strong> <strong>la</strong> solución nos viene asegurada por el hecho <strong>de</strong> que hemosaplicado el esquema <strong>de</strong> recorrido a una secuencia <strong>de</strong> frases. En <strong>la</strong> solución propuestahemos consi<strong>de</strong>rado una última frase que actúa como marca <strong>de</strong> final <strong>de</strong>secuencia. Es preciso averiguar si esta frase es sólo una marca o si es al mismotiempo una frase que se <strong>de</strong>be tratar y una marca.Si examinamos el enunciado, observamos que al final <strong>de</strong>l texto tendremos doscaracteres “.”. El primer punto pertenece a <strong>la</strong> última frase “real” <strong>de</strong>l texto. El segundopunto pue<strong>de</strong> verse como un punto que cierra una frase vacía (no tieneninguna pa<strong>la</strong>bra) y sólo sirve para marcar el final <strong>de</strong>l texto. La frase vacía indicaráel fin <strong>de</strong> <strong>la</strong> secuencia <strong>de</strong> frases; por lo tanto, no es necesario tratar<strong>la</strong> (analizar<strong>la</strong>,en este caso). Sólo hay que analizar cada frase leída no vacía, acumu<strong>la</strong>ndolos resultados <strong>de</strong> su análisis en el objeto ResultadosAnalisisTexto. Cuando salgamos<strong>de</strong> <strong>la</strong> iteración mientras , habremos analizado todas <strong>la</strong>s frases “reales” <strong>de</strong>ltexto (es <strong>de</strong>cir, con caracteres y, por lo tanto, con contenido), y ResultadosAnalisisTextotendrá el resultado <strong>de</strong>l análisis global <strong>de</strong>l texto.Uno <strong>de</strong> los puntos...... fuertes <strong>de</strong> los esquemas resi<strong>de</strong>en que conocemos todos los<strong>de</strong>talles <strong>de</strong> su funcionamiento ocomportamiento, que nos sirven<strong>de</strong> base para razonar cómodamentesobre <strong>la</strong> corrección<strong>de</strong>l algoritmo o fragmento <strong>de</strong>algoritmo resultante <strong>de</strong> <strong>la</strong> aplicación<strong>de</strong> los esquemas.A<strong>de</strong>más, el hecho <strong>de</strong> que el algoritmo no entre en <strong>de</strong>talles <strong>de</strong>l tipo no <strong>de</strong>finido,pues <strong>la</strong> responsabilidad <strong>de</strong> estos <strong>de</strong>talles pertenece a <strong>la</strong>s acciones y/o funcionesque tratan el tipo, hace que <strong>la</strong> <strong>de</strong>finición concreta <strong>de</strong> tFrase sea irrelevanteLa orientación a objetos nos facilitauna separación <strong>de</strong> los problemasmuy efectiva para <strong>de</strong>scomponerlosen subproblemas in<strong>de</strong>pendientes.