1
Fácil de evolucionar y corregir
2
Uso adecuado de recursos del sistema: memoria, ciclos de procesamiento, etc.
3
Buen funcionamiento
4
no causa daños físicos ni económicos en caso de fallo
5
fácil de utilizar por los usuarios, interfaz y documentación apropiadas
6
mecanismos para garantizar la integridad del software y los datos