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
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 31 <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>nte• Decidir el esquema que se <strong>de</strong>be aplicar. Es necesario averiguar cuál <strong>de</strong> los esquemasque conocemos (búsqueda y recorrido) nos ayudará a resolver el problema.• Aplicar el esquema elegido al problema concreto, llevando a cabo <strong>la</strong>s adaptacionesconvenientes en cada caso.Es preciso ir con pies <strong>de</strong> plomo a <strong>la</strong> hora <strong>de</strong> aplicar el esquema elegido. Paraestar seguros, es conveniente reflexionar sobre <strong>la</strong>s siguientes cuestiones:• Cómo obtenemos los diferentes elementos <strong>de</strong> <strong>la</strong> secuencia.– Cómo obtener el primer elemento.– Cómo obtener los siguientes.– Cómo <strong>de</strong>tectar el final <strong>de</strong> <strong>la</strong> secuencia.• Cómo hacemos el tratamiento.– I<strong>de</strong>ntificar el tratamiento que correspon<strong>de</strong> para cada elemento.– Definir <strong>la</strong>s variables necesarias.Con frecuencia <strong>de</strong>bemos <strong>de</strong>finir variables para acumu<strong>la</strong>r los resultados que vamosobteniendo a medida que vamos tratando los elementos; estas variables se <strong>de</strong>ben inicializarconvenientemente en el tratamiento inicial.– Decidir si es necesario trabajar con tab<strong>la</strong>s.Si po<strong>de</strong>mos hacer el tratamiento secuencialmente, no <strong>de</strong>finiremos tab<strong>la</strong>s para almacenar(<strong>de</strong> forma parcial o total) los datos <strong>de</strong> <strong>la</strong> secuencia, ya que esto nos limitaría los datosque <strong>de</strong>bemos tratar, y ocuparíamos espacio innecesario. Sin embargo, en caso <strong>de</strong>que tengamos que hacer algún acceso directo sobre (algunos o todos) los datos, <strong>de</strong>beremos<strong>de</strong>finirlos convenientemente.– Determinar si hay que tratar el último elemento.A veces, el último elemento es un elemento no válido que sólo sirve <strong>de</strong> marca para<strong>de</strong>tectar el final <strong>de</strong> <strong>la</strong> secuencia. No obstante, en otros casos, a<strong>de</strong>más <strong>de</strong> ser <strong>la</strong> marcafinal, también es un elemento válido más <strong>de</strong> <strong>la</strong> secuencia y, por lo tanto, hay queprestar atención y aplicarle el mismo tratamiento que al resto. Entonces el esquema<strong>de</strong>be contener este tratamiento haciendo los cambios a<strong>de</strong>cuados.– Decidir si es necesario un tratamiento final.Observar si todavía se <strong>de</strong>be llevar a cabo un tratamiento final para llegar a <strong>la</strong> postcondición,una vez ya tratados todos los elementos <strong>de</strong> <strong>la</strong> secuencia.En el caso <strong>de</strong> que el problema no siga ninguna secuencia, no po<strong>de</strong>mos aplicarlos esquemas <strong>de</strong> recorrido y búsqueda que conocemos; a<strong>de</strong>más, dado que notenemos ningún esquema previo que aplicar, p<strong>la</strong>ntear <strong>la</strong> resolución <strong>de</strong>l problemaconsistirá en <strong>de</strong>scubrir cuáles son <strong>la</strong>s acciones y funciones necesarias