Un problema
complejo debe ser dividido en varios subproblemas más simples |
||
Programación con Diseño Modular o Top-Down |
||
José Enrique
González Cornejo |
||
Actualmente DocIRS utiliza en la programación de aplicaciones una combinación entre el enfoque top-down y ciertos elementos de la Programación Orientada a Objetos(1). Nuestra experiencia, nos ha llevado a aproximarnos con más fuerza a organizar el trabajo bajo este concepto. Sea definiendo capas, roles, componentes autónomas, tratamiento binario y atómico de los objetos, articulación individual con sistemas internos y externos, complementando la integración con Servicios Web XML. (Ver UML) De hecho hoy, casi todos los lenguajes o plataformas de desarrollo - tipo Framework-, que se ocupan en Internet, obligan a trabajar dividiendo también las tareas de programación en capas, formularios o paginas (asp, aspx, php) , paginas de estilos (css), de formateo xsl, utilización de Ajax para invocar rutinas y consultas, uso autónomo elementos del motor de datos (procedimientos almacenados, triggers, dts,..), sumado a un extenso conjunto de soluciones predefinidas, que están disponibles para necesidades generales de la programación de aplicaciones.
El enfoque conocido como diseño top-down o en forma análoga programación estructurada, cuya ventaja es proporcionar una estructura al proceso completo. La solución de cualquier problema puede darse en varias formas o, como se les llamará, niveles de abstracción. (Ver Simple-DocIRS) El enfoque top-down es de algún modo contrario a la Programación Extrema, dado que enfatiza la planificación y conocimiento del modelo y diseño funcional del sistema antes de comenzar a desarrollar. Se entiende que no es recomendable comenzar producir código hasta que no se haya alcanzado un nivel de detalle suficiente, al menos sobre la arquitectura de la aplicación y posible integración con otros sistemas. El proceso de solución comienza con un enunciado muy general o abstracto de la solución del problema, expresado en términos del problema mismo. A continuación, se procederá a refinar esta solución elaborando los detalles que se habían ignorado previamente, de lo que resulta una solución nueva que es muchísimo menos abstracta. Este proceso continúa a través de un cierto número de etapas cada vez más refinadas, hasta que se ha logrado un nivel de detalles apropiado. Esta es la esencia del diseño top-down. Se trabaja a partir de una solución muy abstracta (el nivel inicial top) hasta llegar a una construcción final, mediante una serie de refinamientos sucesivos. Este enfoque es independiente de cualquier lenguaje de programación; de hecho, se está programando dentro de un lenguaje de programación, más que en uno. Modulo-->Formulario-->Objetos -->Documentación
El diseño top-down es una técnica que han aplicado durante muchos años los buenos programadores.(Dijkstra 1968). Este enfoque es atrayente porque puede definir una estructura para el proceso no estructurado del desarrollo de programas. La atención se concentra en el diseño, en vez de hacerlo en los detalles de la construcción y, por tanto, limita el número de «pelotas» que será necesario tratar a un tiempo. Como toda herramienta, su uso es más eficiente cuando se tiene alguna práctica con ella. El sentido común, la intuición y la creatividad continúan siendo atributos valiosos del programador. La programación dinámica por ejemplo, es un enfoque que ocupa el mismo concepto top-down para la solución de problemas en los que es necesario tomar decisiones en etapas sucesivas. Las decisiones tomadas en una etapa condicionan la evolución futura del sistema, afectando a las situaciones en las que el sistema se encontrará en el futuro (denominadas estados), y a las decisiones que se plantearán en el futuro.
Artículos Relacionados
|