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 49 <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>nteI<strong>de</strong>ntificación <strong>de</strong>l esquema: búsqueda.funcion pa<strong>la</strong>braCapicua(m: tPa<strong>la</strong>bra): booleanovari, j; entero;encontrado: booleano;fvari := 1; j := m.long;encontrado := falso;mientras (no encontrado) y (i < j) hacersi m.c[i] ≠ m.c[j] entoncesencontrado := ciertosino i := i + 1; j := j – 1fsifmientrasretorna no encontradoffuncionfuncion separador(ent c: caracter): booleanoretorna (c= ‘ ’) o (c = ‘,’) o (c = ‘;’)ffuncion4. Del enunciado <strong>de</strong>ducimos que po<strong>de</strong>mos organizar los niveles <strong>de</strong> <strong>de</strong>scomposición <strong>de</strong>l <strong>diseño</strong>a partir <strong>de</strong> los objetos <strong>de</strong>l problema. En <strong>la</strong> entrada <strong>de</strong>l programa tenemos una secuencia<strong>de</strong> páginas. Una página es una secuencia <strong>de</strong> pa<strong>la</strong>bras separadas por espacios y controles <strong>de</strong>línea. Una pa<strong>la</strong>bra es una secuencia <strong>de</strong> caracteres sin espacios ni controles <strong>de</strong> línea. La secuencia<strong>de</strong> entrada es <strong>de</strong> tipo carácter. Po<strong>de</strong>mos distinguir, pues, tres niveles <strong>de</strong> <strong>de</strong>scomposición<strong>de</strong>l <strong>diseño</strong>:a) Secuencia <strong>de</strong> páginas <strong>de</strong> web acabada con “FinPaginas”.b) Página: secuencia <strong>de</strong> pa<strong>la</strong>bras acabada con <strong>la</strong> pa<strong>la</strong>bra “FinTextoHTML”.c) Pa<strong>la</strong>bra: secuencia <strong>de</strong> caracteres terminada con separador (espacio, símbolo =, caracteres<strong>de</strong> control <strong>de</strong> línea).1)Primer nivel: secuencia <strong>de</strong> páginasEspecificaciónReleemos el enunciadoy lo adaptamos siguiendo<strong>la</strong> abstracción <strong>de</strong> página.El objetivo es confeccionar una lista <strong>de</strong> <strong>la</strong>s empresas clientes que participan en el servidor y,para cada empresa participante, obtener <strong>la</strong> cantidad que se les <strong>de</strong>be facturar. Para cada página,po<strong>de</strong>mos obtener el nombre <strong>de</strong> <strong>la</strong> empresa cliente a <strong>la</strong> cual pertenece y valorar su precioa partir <strong>de</strong>l contenido. En un primer nivel, formu<strong>la</strong>mos el algoritmo en términos <strong>de</strong> una secuencia<strong>de</strong> páginas. De este modo, por lo tanto, <strong>la</strong> entrada se pue<strong>de</strong> ver como una secuencia<strong>de</strong> páginas:s = S = ‘FinPaginas’ indica el final <strong>de</strong> <strong>la</strong> secuencia y se pue<strong>de</strong> consi<strong>de</strong>rar como una página especial yúnica que sólo tiene <strong>la</strong> pa<strong>la</strong>bra “FinPaginas”.La precondición se pue<strong>de</strong> expresar como:{ Pre: s = S = y (toda P i , 1 ≤ i ≤ n, es una página) }La postcondición consistirá en tener una secuencia t <strong>de</strong> empresas clientes con el importe facturado.La secuencia t tendrá <strong>la</strong> forma siguiente:t = Don<strong>de</strong> E i es el nombre <strong>de</strong> una empresa cliente presente en <strong>la</strong> secuencia S, y F i es el importe<strong>de</strong> <strong>la</strong> facturación que se <strong>de</strong>be aplicar a <strong>la</strong> empresa E i . La especificación <strong>de</strong>l algoritmo será, porlo tanto:{ Pre: en <strong>la</strong> entrada se tiene una secuencia s = S = y (toda P i,1 ≤ i ≤ n, es una página) }

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

Saved successfully!

Ooh no, something went wrong!