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

12.07.2015 Views

© FUOC • P05/75062/00112 56 Introducción a la metodología de diseño descendenteIdentificación esquema: recorrido.accion escribePalabra(ent m: tPalabra)var i : entero;fvari := 1;mientras i ≤ m.long hacerescribirCaracter(m.c[i]);i := i + 1fmientrasescribirCaracter(‘ ’)faccion { escribePalabra }Acciones pendientes de desarrollarEl diseño de este nivel ha dado pie a unas funciones auxiliares que detallamos a continuación.accion inicializaPalabraImagen(sal m: tPalabra){ Pre: }{ Post: m es la palabra }funcion longitudPalabra(m: tPalabra): entero{ Pre: m = M}{ Post: longitudPalabra(m) da el número de caracteres que tiene M }funcion separador(c: caracter): booleano{ Pre: c = C }{ Post: separador(c) es cierto si C es espacio o C es un igual o C es algún carácter de retorno ode salto de línea }accion inicializaPalabraImagen(sal m: tPalabra)m.long := 4;m.c[1] := ‘

© FUOC • P05/75062/00112 57 Introducción a la metodología de diseño descendentediseño descendenteMetodología que descompone un problema complejo en subproblemas menos complejosque el original. La descomposición es guiada por abstracciones naturales y convenientes alproblema, y da como resultado un conjunto de subproblemas independientes y más concretos.Se procede de idéntica forma para cada uno de los subproblemas, hasta llegar a subproblemaslo suficientemente concretos y elementales.nivel de abstracciónNivel en el que se concreta una abstracción utilizada para descomponer un problema o subproblema.Nivel de abstracción y nivel de descomposición son dos conceptos distintos y quepueden coincidir en la mayoría de los casos, pero no necesariamente.nivel de descomposiciónNivel propio de una etapa de la descomposición de subproblemas en subproblemas más concretos.El primer nivel corresponde al desarrollo del problema original. La descomposiciónde los subproblemas generados en el primer nivel se desarrollará en un segundo nivel, y asísucesivamente.BibliografíaCastro, J.; Cucker, F.; Messeguer; Rubio, A.; Solano, L.; Vallés, B. (1992). Curso deProgramación. Madrid: McGraw Hill.Sebastià Vila, M. (1995). Programació Fonamental. Problemes. Barcelona: Edicions UPC.Wirth, N. (1982). Introducción a la Programación Sistemática. Buenos Aires: El Ateneo.

© FUOC • P05/75062/00112 56 <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 esquema: recorrido.accion escribePa<strong>la</strong>bra(ent m: tPa<strong>la</strong>bra)var i : entero;fvari := 1;mientras i ≤ m.long hacerescribirCaracter(m.c[i]);i := i + 1fmientrasescribirCaracter(‘ ’)faccion { escribePa<strong>la</strong>bra }Acciones pendientes <strong>de</strong> <strong>de</strong>sarrol<strong>la</strong>rEl <strong>diseño</strong> <strong>de</strong> este nivel ha dado pie a unas funciones auxiliares que <strong>de</strong>tal<strong>la</strong>mos a continuación.accion inicializaPa<strong>la</strong>braImagen(sal m: tPa<strong>la</strong>bra){ Pre: }{ Post: m es <strong>la</strong> pa<strong>la</strong>bra }funcion longitudPa<strong>la</strong>bra(m: tPa<strong>la</strong>bra): entero{ Pre: m = M}{ Post: longitudPa<strong>la</strong>bra(m) da el número <strong>de</strong> caracteres que tiene M }funcion separador(c: caracter): booleano{ Pre: c = C }{ Post: separador(c) es cierto si C es espacio o C es un igual o C es algún carácter <strong>de</strong> retorno o<strong>de</strong> salto <strong>de</strong> línea }accion inicializaPa<strong>la</strong>braImagen(sal m: tPa<strong>la</strong>bra)m.long := 4;m.c[1] := ‘

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

Saved successfully!

Ooh no, something went wrong!