jueves, 28 de enero de 2016

Factores y características que determinan la Calidad del Software

Funcionalidad

Funcionalidad es lo que un producto puede hacer. Probar la funcionalidad significa asegurar que el producto funciona tal como estaba especificado. 

Corrección

Es la capacidad de los productos de software para realizar con exactitud las tareas expresadas en su especificación.
Grado en que un programa satisface sus especificaciones y logra los objetivos marcados por el usuario. 

Confiabilidad

Es la aplicación de métodos de ingeniería y analíticos a la evaluación, predicción y aseguramiento de un comportamiento libre de problemas durante el tiempo de vida de un producto o sistema bajo estudio.
Las técnicas utilizadas en el análisis de confiabilidad frecuentemente requieren de la utilización de métodos estadísticos para tratar las incertidumbres, características aleatorias o probabilidades de ocurrencia a lo largo del tiempo.
El análisis de confiabilidad abarca otras técnicas que se enfocan en la naturaleza física y la causa de falla y la prevención o reducción de fallas. 

Eficiencia

Capacidad de un Sistema de Software para exigir la menor cantidad posible de Recursos.
Casi sinónimo de eficiencia es la palabra rendimiento.
Ejemplo
Steve McConnell, en su obra Rapid Development, analiza cuáles son las claves o pilares que consiguen que un proyecto software o un desarrollo sea eficiente. Y por eficiente el autor se refiere a estar por encima de la media en la capacidad de terminar un proyecto en tiempo, dentro de coste y con la funcionalidad necesaria incluida.

Usabilidad

Usabilidad significa que las personas, al usar un producto, pueden hacer sus tareas de forma rápida y fácil. La usabilidad se funda en cuatro puntos:
Centrado en los usuarios: Para desarrollar un producto usable, tienes que saber, entender y trabajar con personas que representen a usuarios actuales o potenciales. Un diseñador, un responsable de proyecto, un supervisor o un cliente sólo se representan a sí mismos y no pueden sustituir a los usuarios finales.
Productividad: La gente considera que un producto es «fácil de usar y aprender» después de valorar el tiempo que necesita, el número de pasos que ha de dar y el éxito en predecir las acciones adecuadas. Si quieres diseñar un producto usable, debes entender los objetivos de tus usuarios.
Usuarios ocupados: El software es una herramienta de trabajo u ocio, y las personas somos poco proclives a dedicar tiempo a aprender y utilizar herramientas.
El usuario decide: Los usuarios, y no los diseñadores o desarrolladores, determinan cuándo un producto es fácil de usar. Cada persona estima el esfuerzo y el tiempo necesario para obtener algo.
Piensa en todas las funciones que tiene tu móvil, ordenador, programa, equipo de música o aparato de tecnología que NO USAS y el tiempo que estarías dispuesto a dedicar a aprender a usarlo todo.

Mantenibilidad

La mantenibilidad es la propiedad de un sistema que representa la cantidad de esfuerzo requerida para conservar su funcionamiento normal o para restituirlo una vez se ha presentado un evento de falla. Se dirá que un sistema es Altamente mantenible cuando el esfuerzo asociado a la restitución sea bajo. Sistemas poco mantenibles o de Baja mantenibilidad requieren de grandes esfuerzos para sostenerse o restituirse.
La mantenibilidad está inversamente relacionada con la duración y el esfuerzo requerido por las actividades de mantenimiento.

Portabilidad

Se define como la característica que posee un software para ejecutarse en diferentes plataformas, el código fuente del software es capaz de reutilizarse en vez de crearse un nuevo código cuando el software pasa de una plataforma a otra (ver la nota, a continuación de este párrafo). A mayor portabilidad menor es la dependencia del software con respecto a la plataforma.
Ejemplo
Para entender un poco la portabilidad, un ejemplo de portabilidad de base de datos se ve con SQLite: puede ser ejecutado en diferentes sistemas operativos, como  Windows, Linux, BSD, Mac OS X, Solaris, HPUX, AIX o en muchos otros como QNX, VxWorks, Symbian, Palm OS, Windows CE. Se pude notar que muchos de ellos trabajan a 16, 32 y 64 Bits.
Desde hace tiempo Mozilla_Firefox usa SQLite para almacenar, por ejemplo, las cookies, los favoritos, el historial, las direcciones de red válidas.

Oportunidad

Capacidad de un Sistema de Software de ser lanzado cuando los usuarios lo desean, o antes.
Ejemplo
Se puede mencionar la Verificación y Validación independiente, es decir grupos independientes, pudiendo ser de empresas externas especializadas o propios, dedicados a actividades de revisión (de documentación y código), pruebas, análisis de rendimiento, etc. Es un hecho que es una actividad con un retorno de inversión alto y casi indispensable para asegurar la calidad en grandes proyectos, pero casi inexistente, especialmente en el sector público.

Disponibilidad

Probabilidad que un paquete de SW esté trabajando según los requerimientos en un punto dado del Tiempo

La disponibilidad suele medirse en “nueves”. Por ejemplo, una solución cuyo nivel de disponibilidad sea de “tres nueves” es capaz de realizar su función prevista el 99,9 por ciento del tiempo, lo que equivale a un tiempo de inactividad anual de 8,76 horas por año sobre una base de 24x7x365 (24 horas al día, siete días a la semana, 365 días al año). En la tabla siguiente se muestran los niveles de disponibilidad frecuentes que muchas organizaciones intentan conseguir.

No hay comentarios:

Publicar un comentario