Cuando se habla de software usualmente se hace referencia a la parte más rápidamente reconocible, a lo más conocido y palpable, como por ejemplo la interfaz, los lenguajes de programación, las buenas prácticas y hasta los patrones y arquitecturas. Sin embargo, hay todo un marco aún más abstracto corriendo por detrás, un marco teórico, pero con implicancias prácticas muy importantes, me refiero a las características del Software, en particular a las características de la calidad del Software.
Conocer estos conceptos es una parte de la diferencia entre un programador, un desarrollador o un ingeniero de software.
También pueden recibir el nombre de cualidades del software ya que estas características que en este artículo repasaremos son en principio deseables y contribuyen a la calidad del producto, de seguro tú ya habrás escuchado y conoces a varias de las que mencionaré en el presente artículo, pero nada como tener un buen sustento y base.
Como ya he dado a entender, estas cualidades del software no están a la libre interpretación, se encuentran bien enmarcadas en un estándar que ha venido madurando durante años; veamos cuál ha sido la evolución de dicho estándar y finalmente ahondaremos en el actual.

Actualmente la norma ISO/IEC 25010:2011 es la que regula una nueva serie de estándares internacionales conocidos como Requisitos y Evaluación de Calidad de Productos de Software o SQuaRE (System and Software Quality Requirements and Evaluation).
Esta norma es una revisión de la ISO/IEC 9126:2001 la cual a su vez es una evolución de la norma ISO/IEC 9126:1991.

Repasemos primero la norma ISO/IEC 9126:2001: está basada en el modelo de calidad de McCall el cual pondera bastante la calidad desde la perspectiva del usuario, entonces teníamos los siguientes atributos de calidad de software:
- Funcionalidad
- Confiabilidad
- Eficiencia
- Usabilidad
- Mantenibilidad
- Portabilidad
- Satisfacción
La norma actual ISO/IEC 25010:2011 sin embargo es más exhaustiva, ya que se encuentra compuesta por ocho características generales de calidad, las cuales contienen a su vez características específicas, aquí se listan todas:
- Adecuación funcional (Functional suitability): Comprende nivel completado de funcionalidades, corrección funcional y pertinencia funcional.
- Eficiencia de desempeño (Perfomance efficiency): Inluye el comportamiento temporal, la utilización de recursos y la capacidad.
- Compatibilidad (Compatibility): Abarca la coexistencia y la interoperabilidad.
- Usabilidad (Usability): Comprende cuán reconocible es la adecuación, facilidad de aprendizaje, operabilidad, protección frente a errores de usuario, estética y accesibilidad.
- Fiabilidad (Reliability): Abarca la madurez, disponibilidad, tolerancia a fallos y la capacidad de recuperación.
- Seguridad (Security): Aquí se presentan la confidencialidad, integridad, el no-repudio, la autenticidad y la responsabilidad.
- Mantenibilidad (Maintainability): Tenemos a la modularidad, la reusabilidad, capacidad de ser analizado, capacidad de ser modificado y la capacidad de ser probado.
- Portabilidad (Portability): Adaptabilidad, facilidad de instalación y la capacidad de ser reemplazado.
Puedes echar un vistazo a un resumen de la norma en su página oficial: https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en

Así que estimado lector, ahora ya conoces un poco más acerca de cuáles son las características deseables en todo software a cualquier nivel y sin importar la tecnología utilizada. Desde ahora puedes utilizar este marco como un excelente referente para poder aplicarlo a tus proyectos, además te da el sustento teórico para poder defender las características aplicadas, y finamente te ayuda mucho a saber cómo definir mejor los requerimientos o requisitos no funcionales de tu software.
Nos vemos en el siguiente artículo y si te ha encantado esta entrada, ya sabes qué hacer crack...!💪😉
Un comentario en «La calidad en el software: Características y estándares»