Factores externos de la calidad del software (III)
Veamos otros dos factores externos de calidad del software propuestos por Bertrand Meyer en su libro Construcción de Software Orientado a Objetos, revisaremos : Compatibilidad y Eficiencia.
- Compatibilidad
En el desarrollo del software es muy común que los sistemas no se implementen de forma aislada, sino que en la mayoría de las veces necesitan interactuar con otros, para lo cual es muy importante definir unos estándares de comunicación entre sistemas de software. Estos estándares deberían focalizarse en los formatos de archivos, las estructuras de datos o las interfaces de usuario. Dicho esto, y a modo de resumen, la compatibilidad se define como la facilidad de combiar unos elementos de software con otros.
- Eficiencia
La eficiencia podría se entendida como la capacidad de un software para exigir la menor cantidad posible de recursos hardware para conseguir el objetivo para el que fue implementado. Este concepto presenta dos puntos de vista en el desarrollo del software. Por un lado está la visión de aquellos que dedican grandes esfuerzos y muchas horas a realizar en sus productos supuestas optimizaciones, y por otro lado, aquellos que prefieren tener un rendimiento quizás algo menos eficiente pero dedicar más horas a la corrección de sus productos basándose además en la mejora del hardware año tras año. Aún así, teniendo en cuenta el aumento de la potencia y del rendimiento del hardware, no se debería dejar de tener en cuenta optimizar y mejorar el rendimiento entre otras cosas por las siguientes razones:
Hacerse con hardware nuevo y más potente debería procesar el software de forma más rápida. Hardware más potente para tener la misma velocidad de procesamiento….no.
Dependiendo del dominio del problema a resolver, la poca eficiencia del software puede hacer que no se cumpla el factor externo de la calidad de la corrección. Por ejemplo, un sistema de software encargado de la seguridad de una planta nuclear no puede permitirse el lujo de no estar optimizado y ser lento en su funcionamiento.
La potencia del hardware se ve más ampliamente reflejada en los buenos algoritmos. Si un algoritmo O(n) se ejecuta en x tiempo en una máquina concreta, si esta máquina mejora, lo normal es que ese algoritmo sufra una mejora en su ejecución de manera proporcional.