Diferencia entre revisiones de «Diseño estructurado»

Contenido eliminado Contenido añadido
m Revertidos los cambios de 190.24.223.166 a la última edición de Andreasmperu
Línea 8:
*La complejidad de un problema global es mayor que el valor de las complejidades de cada una de sus partes por separado.
 
Según esto, merece la pena el esfuerzo de dividir un problema grande en subproblemas más pequeños. Si el objetivo es elaborar un programa para resolver dicho problema ''grande'', cada subproblema (menos complejo) podrá ser resuelto por un módulo ([[subalgoritmo]]) relativamente fácil de implementar (más que el programa global '''No''' dividido). Ahora la cuestión es ''¿cómo realizar la descomposición?''; realizando un estudio descendente [[Top-down y Bottom-up|Top-Down]] que nos lleve desde la concepción del problema (programa o algoritmo) global hasta identificar sus partes (módulos). Esta técnica se repite aplicando una estrategia llamada [http://portal.acm.org/citation.cfm?id=362577 de refinamiento sucesivo] propuesta por el experto en [[Ciencias de la Computación]] '''[[Niklaus Wirth]]''', que consiste precisamente en volver a aplicar el estudio descendente Top-Down a cada subproblema una y otra vez hasta obtener subproblemas suficientemente pequeños, que puedan ser resueltos por módulos que cumplan, en la medida de lo posible, las [[módulo (programación)#Características de un módulo|características deseables en un módulo]] en el ámbito de la programación. En palabras del propio '''Niklaus Wirth''':
Según esto, merece la pena el esfuerzo de dividir un problema grande en subproblemas más pequeños. Si el objetivo es elaborar un programa para resolver dicho problema ''grande'', cada subproblema (menos complejo) jhguykgutgggggggggggggggggggguytuirtr4w65fte7pirobpjfdjrwsysdureurduir6
podrá ser resuelto por un módulo ([[subalgoritmo]]) relativamente fácil de implementar (más que el programa global '''No''' dividido). Ahora la cuestión es ''¿cómo realizar la descomposición?''; realizando un estudio descendente [[Top-down y Bottom-up|Top-Down]] que nos lleve desde la concepción del problema (programa o algoritmo) global hasta identificar sus partes (módulos). Esta técnica se repite aplicando una estrategia llamada [http://portal.acm.org/citation.cfm?id=362577 de refinamiento sucesivo] propuesta por el experto en [[Ciencias de la Computación]] '''[[Niklaus Wirth]]''', que consiste precisamente en volver a aplicar el estudio descendente Top-Down a cada subproblema una y otra vez hasta obtener subproblemas suficientemente pequeños, que puedan ser resueltos por módulos que cumplan, en la medida de lo posible, las [[módulo (programación)#Características de un módulo|características deseables en un módulo]] en el ámbito de la programación. En palabras del propio '''Niklaus Wirth''':
 
* En cada paso (del refinamiento), una o varias instrucciones del programa dado, se descomponen en instrucciones más detalladas. Esta descomposición sucesiva o refinamiento de especificaciones termina cuanto todas las instrucciones están expresadas en términos de la computadora usada o del lenguaje de programación...