12.07.2015 Views

Libro en PDF - DIT - Universidad Politécnica de Madrid

Libro en PDF - DIT - Universidad Politécnica de Madrid

Libro en PDF - DIT - Universidad Politécnica de Madrid

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.

Complejidad y Tecnologías <strong>de</strong> la InformaciónLa <strong>de</strong>scomposición <strong>en</strong> niveles <strong>de</strong> abstracción es una metodología que nos pue<strong>de</strong>ayudar a abordar los problemas que aparec<strong>en</strong> <strong>en</strong> esta etapa. Las característicasque <strong>de</strong>be t<strong>en</strong>er esta <strong>de</strong>scomposición son las habituales <strong>en</strong> el análisis <strong>de</strong> sistemascomplejos (ver capítulo sobre las Jerarquías): pocos elem<strong>en</strong>tos <strong>en</strong> cada nivel <strong>de</strong>abstracción, contextos limitados y bi<strong>en</strong> <strong>de</strong>finidos, etc.De un tiempo a esta parte se están com<strong>en</strong>zando a utilizar técnicas formales <strong>de</strong><strong>de</strong>finición. Esto permite g<strong>en</strong>erar especificaciones coher<strong>en</strong>tes y sin ambigüeda<strong>de</strong>s.A<strong>de</strong>más se está investigando activam<strong>en</strong>te <strong>en</strong> la g<strong>en</strong>eración automática <strong>de</strong> softwarea partir <strong>de</strong> <strong>de</strong>finiciones escritas <strong>en</strong> l<strong>en</strong>guajes formales (aunque aún no se hanlogrado gran<strong>de</strong>s resultados prácticos <strong>en</strong> este campo).3.2. DiseñoUna vez planteada la especificación <strong>de</strong>l programa, hay que analizar <strong>de</strong>s<strong>de</strong> unpunto <strong>de</strong> vista técnico las posibles soluciones. Entre ellas, se elegirá la que se consi<strong>de</strong>remás a<strong>de</strong>cuada. A partir <strong>de</strong> ese mom<strong>en</strong>to, se <strong>de</strong>cidirá la estructura g<strong>en</strong>eral<strong>de</strong>l programa (subdivisión <strong>en</strong> partes y relaciones <strong>en</strong>tre ellas). Para cada una <strong>de</strong> laspartes se seguirá recursivam<strong>en</strong>te un proceso similar, hasta que t<strong>en</strong>gamos totalm<strong>en</strong>te<strong>de</strong>finido el programa y estemos listos para pasar a la fase <strong>de</strong> codificación.En el análisis <strong>de</strong> cada una <strong>de</strong> las partes nos <strong>en</strong>contraremos normalm<strong>en</strong>te con quehay varias soluciones posibles (por ejemplo varios algoritmos para realizar lamisma tarea). La elección <strong>de</strong> una <strong>de</strong> ellas suele realizarse <strong>de</strong> una forma más om<strong>en</strong>os intuitiva: no hay metodologías efectivas que nos ayud<strong>en</strong> <strong>en</strong> esta <strong>de</strong>cisión.Como pue<strong>de</strong> <strong>de</strong>ducirse <strong>de</strong> lo dicho hasta aquí, la <strong>de</strong>scomposición <strong>en</strong> niveles <strong>de</strong>abstracción también será útil <strong>en</strong> esta fase. Cada etapa <strong>de</strong>l proceso recursivo<strong>de</strong>scrito pue<strong>de</strong> constituir un nivel <strong>de</strong> abstracción. Si, a<strong>de</strong>más, utilizamos las posibilida<strong>de</strong>s<strong>de</strong> ocultación <strong>de</strong> información que nos permite esta metodología, podremos<strong>de</strong>scomponer nuestro programa <strong>en</strong> pequeños módulos fáciles <strong>de</strong> modificar.En el nivel más bajo <strong>de</strong>l diseño hay que <strong>de</strong>cidir la estructura <strong>de</strong> control y el flujo<strong>de</strong> datos <strong>de</strong>l módulo. El uso <strong>de</strong> la programación estructurada facilita <strong>en</strong>ormem<strong>en</strong>tela compr<strong>en</strong>sión <strong>de</strong> los algoritmos, al limitar los flujos <strong>de</strong> control posibles.El producto final <strong>de</strong> la etapa <strong>de</strong> diseño pue<strong>de</strong> ser un organigrama, unas líneas <strong>de</strong>pseudocódigo, etc. Algunos l<strong>en</strong>guajes <strong>de</strong> programación (como Ada) permit<strong>en</strong> hastacierto punto realizar el diseño <strong>en</strong> el propio l<strong>en</strong>guaje, y compilarlo posteriorm<strong>en</strong>te.Así pued<strong>en</strong> <strong>de</strong>tectarse incoher<strong>en</strong>cias y ambigüeda<strong>de</strong>s <strong>de</strong> una forma automática.A<strong>de</strong>más se favorece <strong>en</strong> gran medida la integración con la etapa <strong>de</strong> codificación.300

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

Saved successfully!

Ooh no, something went wrong!