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 28 <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>nteser más explícito con el nombre <strong>de</strong> <strong>la</strong>s variables, por ejemplo), intentando verloparcialmente a partir <strong>de</strong> algunas abstracciones que no están expresadas.A pesar <strong>de</strong> todo, <strong>la</strong> confusión pue<strong>de</strong> existir por el hecho <strong>de</strong> que <strong>la</strong>s abstraccionesno están separadas. Cuando más a<strong>de</strong><strong>la</strong>nte (una semana o más) haya que revisarlopor el motivo que sea, se <strong>de</strong>berá hacer <strong>de</strong> nuevo este ejercicio olímpico <strong>de</strong>concentración. Si se ha comentado ampliamente, seguro que se encontrará quealgunos comentarios <strong>de</strong>spistan, porque no se ha seguido un or<strong>de</strong>n concreto, asícomo tampoco se han separado ni mantenido <strong>la</strong>s abstracciones que en su momentose han realizado para enten<strong>de</strong>r el algoritmo. A<strong>de</strong>más, con comentarios,el algoritmo “churro” podría ser tan <strong>la</strong>rgo como el <strong>diseño</strong> hecho metodológicamente.La mayoría <strong>de</strong> <strong>la</strong>s veces, un <strong>de</strong>sarrollo <strong>de</strong> este tipo es muy lento, a pesar<strong>de</strong> que el texto final <strong>de</strong>l algoritmo sea re<strong>la</strong>tivamente corto.En ocasiones, <strong>la</strong> intuición nos juega ma<strong>la</strong>s pasadas. La longitud <strong>de</strong>l texto en elque se expresa un algoritmo no tiene corre<strong>la</strong>ción con su posible eficiencia entiempo al ser procesado. El coste <strong>de</strong> introducir encapsu<strong>la</strong>do (acciones y/o funciones,constructores, etc.) es mínimo y <strong>de</strong>spreciable. Recordad que otro <strong>de</strong> losobjetivos <strong>de</strong> los algoritmos es que puedan ser leídos fácilmente, ya que el coste<strong>de</strong> mantenimiento y mejoras se pue<strong>de</strong> disparar en una empresa si otros programadoresse ven obligados a per<strong>de</strong>r el tiempo leyendo algoritmos confusos<strong>de</strong> programadores no metódicos. Por ejemplo, <strong>la</strong> editorial nos acaba <strong>de</strong> avisarque se ha introducido un nuevo carácter corrector, el “/”, que sirve para indicarque <strong>la</strong>s pa<strong>la</strong>bras que lo tengan no se cuenten como pa<strong>la</strong>bras por corregir,a pesar <strong>de</strong> que vayan acompañadas <strong>de</strong> asterisco. ¿Dón<strong>de</strong> haréis los cambios <strong>de</strong>forma más cómoda, en el algoritmo “churro” o en el que hemos <strong>de</strong>sarrol<strong>la</strong>dosiguiendo el método <strong>de</strong> <strong>diseño</strong> <strong>de</strong>scen<strong>de</strong>nte?A lo <strong>la</strong>rgo <strong>de</strong> todo el apartado nos hemos ocupado <strong>de</strong> un ejemplo. Una aplicaciónreal presenta una complejidad mucho mayor, y todas <strong>la</strong>s observacioneshechas son todavía más evi<strong>de</strong>ntes; por ello se hace más necesario trabajar con<strong>la</strong> <strong>metodología</strong> que aquí se propone.1.9. Últimas observacionesPara asimi<strong>la</strong>r <strong>la</strong> <strong>metodología</strong> es necesario practicar mucho y vencer los miedosiniciales. En cada ejercicio que hagáis, tenéis que potenciar vuestra capacidadintelectual para encontrar <strong>la</strong>s abstracciones más convenientes al problema, asícomo también potenciar vuestra capacidad <strong>de</strong> expresión (<strong>la</strong> elección <strong>de</strong> unosbuenos nombres en <strong>la</strong>s <strong>de</strong>finiciones forma también parte <strong>de</strong>l juego). El restoes verificar que <strong>la</strong> composición <strong>de</strong> sentencias y expresiones <strong>de</strong>l algoritmo y <strong>de</strong> <strong>la</strong>sacciones y/o funciones que diseñáis sigue <strong>la</strong> lógica correcta y prevista, <strong>de</strong> modoque ampliéis <strong>la</strong>s técnicas más trabajadas a lo <strong>la</strong>rgo <strong>de</strong> <strong>la</strong> asignatura.

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

Saved successfully!

Ooh no, something went wrong!