La obtención de un software de calidad implica la utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del software, con la finalidad de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba.
La construcción del software de calidad debe cumplir las siguientes características:
Eficiencia: La eficiencia de un software es su capacidad para hacer un buen uso de los recursos del ordenador.
Portabilidad: Es la facilidad con la que un software puede ser transportado sobre diferentes sistemas físicos o lógicos.
Fácil de usar: Cuando el usuario puede comunicarse con él de manera cómoda.
Compatibilidad: Facilidad de los productos para ser combinados con otros y usados en diferentes plataformas hardware o software.
Corrección: Facilidad para solucionar los problemas que puedan presentarse.
Extensibilidad: Facilidad que tiene los productos de adaptarse a cambios en su especificación.
Robustez: Capacidad que tiene los productos de software de funcionar incluso en situaciones anormales.
Verificabilidad: Es la facilidad de verificación de un software, es decir, probar que el software funcione correctamente.
Reutilización: Capacidad de los productos de ser reutilizados, en su totalidad o en parte, en nuevas aplicaciones.
Integridad: Es la capacidad de un software de proteger sus propios componentes contra los procesos que no tengan el derecho de acceder.
Facilidad de Interoperación: es el esfuerzo requerido para asociar un programa a otro.
Documentación: El software debera de tener una excelente guia de programación para actualizar el software desde el punto de vista del programador y una manual de usuario para el cliente final, el cual facilite su utilización.