Diseño Estructurado de Algoritmos DISEÑO ESTRUCTURADO DE ALGORITMOS Sesión No. 6 Nombre: Técnicas de diseño Objetivo de la sesión: Al concluir la sesión el estudiante identificará las principales características y casos en que es recomendable aplicarse las técnicas de diseño top-down y bottom-up. Contextualización En la búsqueda de soluciones, los humanos generan estrategias que le permiten profundizar y de una forma sencilla tener desde un principio las bases que le permitan la resolución de problemas. El tema de esta sesión son las técnicas de diseño y que podríamos definirlo como la generación de estrategias que permiten solucionar algún problema de forma más rápida. En el área que nos interesa, que es el desarrollo de algoritmos, las técnicas de diseño se basan en una estructura definida que permiten llegar a soluciones rápidas mediante una serie de estrategias. 1 DISEÑO ESTRUCTURADO DE ALGORITMOS Introducción al Tema ¿Qué técnicas para el diseño de programas te imaginas que existen? Durante el paso del tiempo las formas de realizar un programa han ido mejorando debido a que se buscan diseños que faciliten su desarrollo, tomando en cuenta los problemas que iban surgiendo. En esta sesión se conocerán las técnicas de diseño más utilizadas y la forma de aplicarlas según la necesidad del programador. Una de éstas se denomina TopDown porque su estructura es de forma descendente (de arriba hacia abajo). Y la otra es Bottom Up debido a que se realiza una estructura de forma ascendente (de abajo hacia arriba). Estas técnicas te permitirán simplificar el desarrollo del programa facilitando la lectura y su mantenimiento. 2 DISEÑO ESTRUCTURADO DE ALGORITMOS Explicación ¿Alguna vez habías escuchado el término Top-Down? Este tipo de diseño se encarga de crear una serie de niveles generando un bloque, empezando con el problema más difícil hasta llegar a los niveles inferiores (de forma descendente). Se trata de generar una relación entre todas las etapas del programa mediante las entradas de información y las salidas. Para comenzar con el diseño se debe generar una visión estructural sin hacer especificaciones, después se realiza una descomposición de los componentes donde se genera un refinamiento. Mediante la descomposición del problema lo que se desea es llegar a un análisis más detallado de las instrucciones que forman parte del programa. El diseño Top-Down tiene como objetivo: • Generar una simplificación del problema. • Al generar una descomposición de las partes del problema se puede programar de forma independiente, sin importar qué persona lo realice. • La finalidad es que el programa quede estructurado en un módulo, esto quiere decir que se generan grupos de instrucciones que realizan 3 DISEÑO ESTRUCTURADO DE ALGORITMOS funciones, esto permitirá una lectura más sencilla y un mejor mantenimiento. • Cada módulo debe ser tratado en la misma manera que el problema general, el diseño top-down hace que el problema general se convierta en problemas más específicos y en general más fáciles de resolver (Abdiel Cáceres González. 2009). ¿Ubicas el término Bottom up? • A diferencia del diseño Top-Down, el diseño Bottom Up es formado a través de una estructura ascendente; se basa en la identificación de los procesos que necesitan transcribirse según aparezca el análisis y su configuración. Aquí se consideran todas las partes por separado y se diseñan con cuidado, después se enlazan hasta formar el programa completo. 4 DISEÑO ESTRUCTURADO DE ALGORITMOS Las estrategias de este diseño se basan en un conocimiento detallado de todas las variables que puedan afectar el programa. Se puede comenzar desde que se ha especificado el primer módulo, pero tiene un gran beneficio, ya que puede ser reusado el código. Se puede decir que en este diseño se brincan los primeros pasos como la definición del problema, la planeación de los objetivos, etcétera. Pasos para el diseño: • Se planifican los últimos niveles que se necesiten. • Se detallan desde el principio las partes más difíciles. • Se realiza el diseño del problema final, ajustándolos con los primeros diseños. Se debe tener en cuenta que utilizando este diseño pueden existir riesgos, porque desde el principio no se tiene una idea clara de cómo se conectarán todos los procesos y puede no ser tan sencillo, debido a que no se consideran los objetivos, ya que estos no permiten un buen resultado. 5 DISEÑO ESTRUCTURADO DE ALGORITMOS Conclusión ¿Cuál es la mejor técnica de diseño? Existen diferencias claras entre los dos tipos de diseño tratados en esta sesión, cada una genera un resultado diferente ante un problema. Pongamos un ejemplo práctico: Sabemos que una empresa cuenta con una estructura interna, una de ellas es que está dividida en varios departamentos como: recursos humanos, mantenimiento, ventas, mercadeo, contabilidad, etcétera. Supongamos que existen problemas en los departamentos, podríamos aplicar una técnica de diseño para llegar a una solución. Primero ocuparemos el diseño Bottom Up, creando un programa que sólo solucione el problema generado. Si la empresa después de un tiempo integra un sistema global que permita la solución de los problemas de todos los departamentos, se notará que las soluciones no coinciden, esto pasa porque con éste no hay un análisis previo. Sin embargo, si para llegar a la solución del problema se utiliza el diseño TopDown se obtendrá el diseño ideal que cubra todas las necesidades, toda vez que existirá un análisis que permita un buen mantenimiento. 6 DISEÑO ESTRUCTURADO DE ALGORITMOS Para aprender más ¿Quieres conocer más técnicas de diseño? • ITESCAM. (s/f). Metodología para la solución de problemas. Consultado el 17 de marzo de 2013: http://brd.unid.edu.mx/metodologia-para-la-solucion-de-problemas/ ¿Quieres saber más sobre las técnicas de diseño Top-Down y Bottom Up? • Marco teórico. Metodologías de diseño. (2010). Consultado el 17 de Marzo del 2013: http://brd.unid.edu.mx/metodologias-de-diseno/ • Balderrama Vásquez, C. Algoritmos. Metodología de la Programación I. pp.48-50. Consultado el 16 de marzo del 2013; http://brd.unid.edu.mx/algoritmos-metodologia-de-la-programacion-i/ 7 DISEÑO ESTRUCTURADO DE ALGORITMOS Actividad de Aprendizaje Instrucciones: Con la intención de fortalecer los conocimientos ganados a lo largo de esta sesión, realiza un cuadro comparativo con la finalidad de proporcionar las principales características de estás dos técnicas de diseño. Principales Ventajas Características Diseño Desventajas Ejemplo aplicación Top- down Diseño Bottom-Up Puedes realizarlo en cualquier programa, al final tendrás que guardarlo como PDF con la finalidad de que no existan modificaciones y así subirlo a la plataforma. Recuerda que la actividad te ayudará a contextualizar, para que al momento de que realices el diseño de un programa sepas aplicar el diseño óptimo para la solución de tu problema. Se tomará en cuenta lo siguiente: • Tus datos generales • Referencias bibliográficas • Ortografía y redacción • Introducción • Contenido 8 DISEÑO ESTRUCTURADO DE ALGORITMOS Cibergrafía Balderrama, C. (s/f). Algoritmos. Metodología de la Programación I. Consultado el 16 de marzo del 2013: http://www.sistemas.edu.bo/cbalderrama/sis%201100/LIBROS/Libro%20Base/T EMA%202.pdf Hernández, M. (1998). Diseño estructurado de algoritmos. Instituto Tecnológico de Tuxtepec. Consultado el 16 de Marzo del 2013: www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/.../parte3.pdf ITESCAM. (s/f). Metodología para la solución de problemas. Consultado el 17 de Marzo del 2013: http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r62287.PDF Jorurbano. (2012).Top-Down. Consultado el 16 de Marzo del 2013: http://www.slideshare.net/jorurbano/top-down-13284489 Marco teórico. Metodologías de diseño. (s/f). Consultado el 17 de Marzo del 2013: http://bdigital.eafit.edu.co/PROYECTO/P620.0042CDR436A/marcoTeorico .pdf 9