Modulares: Debe favorecer la división del problema en módulos pequeños.
Modificables:Debe estar diseñado de modo que sus modificaciones sean fáciles de realizar
Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de ejecución.
Finitos: Debe acabar en algún momento.
Legibles: el texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.
Inicio y Final: Debe comenzar en un estado inicial con una serie de datos específicos, y culmina con una solución o salida