12.07.2015 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!