Es decir, se concentra en describir el problema para resolver con el programa, las posibles soluciones, la descomposición del programa en fragmentos más sencillos, la descripción de cada fragmento y, finalmente, el código de cada fragmento.