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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • P05/75062/00112 18 <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>ntedon<strong>de</strong> maxPa<strong>la</strong>brasFrase es el número máximo <strong>de</strong> pa<strong>la</strong>bras que pue<strong>de</strong> tener unafrase, maxCarPa<strong>la</strong>bra es el máximo <strong>de</strong> caracteres que pue<strong>de</strong> tener una pa<strong>la</strong>bra, ycada una <strong>de</strong> <strong>la</strong>s fi<strong>la</strong>s <strong>de</strong> <strong>la</strong> matriz <strong>de</strong> caracteres guarda un centine<strong>la</strong> para cada pa<strong>la</strong>bra.A pesar <strong>de</strong> que <strong>la</strong> información esté estructurada, es críptico tratar esta estructuraporque no refleja <strong>de</strong>l todo <strong>la</strong> abstracción <strong>de</strong> pa<strong>la</strong>bra que nos convienepara resolver <strong>de</strong> forma más cómoda el nuevo problema, sin dispersión <strong>de</strong> abstracciones.En cambio, <strong>la</strong> siguiente <strong>de</strong>finición es mucho más apropiada y menosproblemática a <strong>la</strong> hora <strong>de</strong> tratar<strong>la</strong>:tipotFrase = tup<strong>la</strong>nPa<strong>la</strong>bras: entero;m: tab<strong>la</strong> [maxPa<strong>la</strong>brasFrase] <strong>de</strong> tPa<strong>la</strong>bra;ftup<strong>la</strong>ftipoDon<strong>de</strong> tPa<strong>la</strong>bra se <strong>de</strong>finirá en el nivel correspondiente a <strong>la</strong>s acciones y funcionesasociadas que le hagan falta.De este modo, po<strong>de</strong>mos observar que <strong>la</strong> abstracción <strong>de</strong> datos se pue<strong>de</strong> hacermediante los constructores <strong>de</strong> tipos, pero no es necesario olvidar que en <strong>la</strong> abstracciónreunimos aquello que nos interesa y que nos conviene porque es relevantepara el problema que estamos resolviendo. ¿Habéis encontrado ya <strong>la</strong>solución que <strong>de</strong>be aplicarse al tipo tFrase <strong>de</strong> nuestro problema inicial?Pensad <strong>la</strong> solución antes<strong>de</strong> continuar.Pues aquí <strong>la</strong> tenéis:tipotFrase = tup<strong>la</strong>nPa<strong>la</strong>brasC: entero;final: booleano;ftup<strong>la</strong>ftipoPara nuestro ejercicio inicial, todo lo que nos interesa <strong>de</strong> una frase es saber elnúmero <strong>de</strong> pa<strong>la</strong>bras que tiene por corregir, a<strong>de</strong>más <strong>de</strong> saber también si se trata<strong>de</strong> <strong>la</strong> frase final. De este modo, <strong>la</strong> tup<strong>la</strong> <strong>de</strong>finida cumple los objetivos que noshemos propuesto para el problema.Tal vez penséis que alguno <strong>de</strong> los tipos en los que se guarda el contenido <strong>de</strong> <strong>la</strong>frase también sirve para nuestro objetivo, ya que <strong>de</strong>spués po<strong>de</strong>mos <strong>de</strong>sarrol<strong>la</strong>r<strong>la</strong>s acciones y/o funciones que contabilizan el número <strong>de</strong> caracteres y pa<strong>la</strong>brasa partir <strong>de</strong>l cual está guardado. Sin embargo, si pensamos así nos olvidamos <strong>de</strong>los objetivos que perseguimos al llevar a cabo un <strong>diseño</strong>. En primer lugar, tenemosuna razón <strong>de</strong> sentido común: ¿por qué <strong>de</strong>bemos guardar cosas que <strong>de</strong>spuésno utilizaremos? La abstracción <strong>de</strong> datos consiste en simplificar los <strong>de</strong>talles <strong>de</strong>lobjeto sometido a estudio para poner aquellos datos que son relevantes para el

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

Saved successfully!

Ooh no, something went wrong!