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
© 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.
- Page 5 and 6: © FUOC • P05/75062/00112 5 Intro
- Page 7 and 8: © FUOC • P05/75062/00112 7 Intro
- Page 9 and 10: © FUOC • P05/75062/00112 9 Intro
- Page 11 and 12: © FUOC • P05/75062/00112 11 Intr
- Page 13 and 14: © FUOC • P05/75062/00112 13 Intr
- Page 15 and 16: © FUOC • P05/75062/00112 15 Intr
- Page 17 and 18: © FUOC • P05/75062/00112 17 Intr
- Page 19 and 20: © FUOC • P05/75062/00112 19 Intr
- Page 21 and 22: © FUOC • P05/75062/00112 21 Intr
- Page 23 and 24: © FUOC • P05/75062/00112 23 Intr
- Page 25 and 26: © FUOC • P05/75062/00112 25 Intr
- Page 27 and 28: © FUOC • P05/75062/00112 27 Intr
- Page 29 and 30: © FUOC • P05/75062/00112 29 Intr
- Page 31 and 32: © FUOC • P05/75062/00112 31 Intr
- Page 33 and 34: © FUOC • P05/75062/00112 33 Intr
- Page 35: © FUOC • P05/75062/00112 35 Intr
- Page 38 and 39: © FUOC • P05/75062/00112 38 Intr
- Page 40 and 41: © FUOC • P05/75062/00112 40 Intr
- Page 42 and 43: © FUOC • P05/75062/00112 42 Intr
- Page 44 and 45: © FUOC • P05/75062/00112 44 Intr
- Page 46 and 47: © FUOC • P05/75062/00112 46 Intr
- Page 48 and 49: © FUOC • P05/75062/00112 48 Intr
- Page 50 and 51: © FUOC • P05/75062/00112 50 Intr
- Page 52 and 53: © FUOC • P05/75062/00112 52 Intr
- Page 54 and 55: © FUOC • P05/75062/00112 54 Intr
© 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] := ‘