Niklaus Wirth desarrollo una metodología muy eficiente para la aplicación de esta técnica , la cual se puede resumir en 3 reglas :
�
En cada paso de la descomposición , 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 .
� Conforme se refinan las tareas , también los datos pueden ser refinados , descompuestos o estructurados , siendo lo natural refinar las especificaciones del programa y de los datos en paralelo .
�
Cada paso de refinamiento implica algunas decisiones de diseño . Es importante que el programador sea consciente de los criterios subyacentes ( en las decisiones de diseño adoptadas ) y de la existencia de soluciones alternativas .