martes, 14 de abril de 2015

Calidad de Software

La calidad de software es un término cada vez más conocido e importante entre las empresas desarrolladoras del mismo, debido principalmente a que el nivel de calidad que ofrezcan sus productos (software) va a impactar directamente en el éxito de éste.

Como se mostró anteriormente, la calidad es un concepto un tanto complejo, pero que haciendo uso de la norma ISO 9001, se definía a la calidad como "El grado en el que un conjunto de características cumple con lo requerido". Tomando esto como base, se puede decir que al hablar de calidad de software nos referimos al grado en el que un software en particular cumple con lo requerido, sin embargo ¿qué es lo requerido?

Para responder a esta pregunta, se han creado un gran número de las llamadas "Métricas", que en esencia son una serie de mediciones y criterios orientados en este caso al software, cuyo propósito es establecer una normalización a seguir en el desarrollo de los proyectos de software buscando asegurar la calidad de este. Existen métricas de diversos tipos y son clasificadas en base a los criterios utilizados y al contexto en el que se aplican.

Métricas en base a los criterios utilizados:

- Criterios de Complejidad: Métricas que definen la medición de la complejidad: volumen, tamaño, anidaciones y configuración.

- Criterios de Calidad: Métricas que definen la calidad del software: exactitud, estructuración o modularidad, pruebas, mantenimiento.

- Criterios de Competencia: Métricas que intentan valorar o medir las actividades de productividad de los programadores con respecto a su certeza, rapidez, eficiencia y competencia.

- Criterios de Desempeño: Métricas que miden la conducta de módulos y sistemas de un software, bajo la supervisión del Sistema Operativo o hardware.

- Criterios de estilización: Métricas de experimentación y de preferencia: estilo de código, convenciones, limitaciones, etc.

Las métricas clasificadas en base al contexto en el que se aplican son utilizadas cuando se evalúa un proyecto en sus diversas partes, y dentro de esta clasificación se encuentran 3 principales tipos:

- Metricas de Proceso:

     Como su nombre lo indica, son métricas enfocadas al desarrollo del proyecto de manera general, y suelen estar caracterizadas por el control y ejecución del mismo, además de la medición de tiempo de sus fases.

- Metricas de Proyecto:

    Este tipo de métricas están orientadas a la evaluación de un proyecto en su totalidad, abarcado apartados como su viabilidad, riesgos, requerimientos, tiempo de desarrollo, etc., además de que también evalúan el estado actual del mismo.

- Métricas de Producto:

     Estas métricas están enfocadas a evaluar las características del software producido, ignorando el cómo fue desarrollado, en este tipo de métricas se le suele dar importancia al tamaño, la volatilidad, la calidad, el esfuerzo y la totalidad.

Como puede observarse, las métricas son capaces de llegar a un alto nivel de complejidad dependiendo de cómo estén diseñadas, sin embargo con el paso del tiempo se han desarrollado diversos modelos enfocados a la calidad de software, actualmente existen 4 principales modelos, cada uno de ellos con sus métricas particulares y con un mismo fin: el aseguramiento de la calidad del software, esos modelos son los siguientes:

1.- Modelo MCCALL (1977)

Este modelo describe la calidad como un concepto elaborado mediante relaciones jerárquicas entre los llamados "factores de calidad", cuyo cumplimiento se mide en función de la satisfacción de cada uno de los criterios que los conforman. Los factores de calidad y los criterios que maneja son los siguientes:
  • Correctitud: Rastreabilidad, Completitud, Consistencia.
  • Confiabilidad: Consistencia, Exactitud, Tolerancia a fallas.
  • Eficiencia: Eficiencia de ejecución, Eficiencia de almacenamiento.
  • Integridad: Control de acceso, Auditoría de acceso.
  • Usabilidad: Operabilidad, Entrenamiento, Comunicación.
  • Interoperabilidad: Modularidad, Similitud de comunicación, Similitud de datos.
  • Mantenibilidad: Simplicidad, Concreción.
  • Capacidad de Prueba: Simplicidad, Instrumentación, Auto-descriptividad, Modularidad.
  • Flexibilidad: Auto-descriptividad, Capacidad de expansión, Generalidad, Modularidad.
  • Portabilidad: Auto-descriptividad, Independencia del sistema, Independencia de máquina.
  • Reusabilidad: Auto-descriptividad, Generalidad, Modularidad, Independencia del sistema, Independencia de máquina.

(Nota: Como puede verse en este modelo y en los siguientes, varios factores de calidad comparten criterios con el mismo nombre, sin embargo cada uno de ellos está enfocado a un aspecto diferente.)

2.- Modelo FURPS (1987)

Este es un modelo desarrollado por Hewlett-Packard y está basado en el modelo de MCCALL, por lo que se utiliza la misma idea de factores de calidad, pero ahora en vez de relacionarlos con criterios, se relacionan con atributos:

  • Funcionalidad: Características y capacidades del programa, Generalidad de las funciones, Seguridad del sistema.
  • Facilidad de uso: Factores humanos, Factores estéticos, Consistencia de la interfaz, Documentación.
  • Confiabilidad: Frecuencia y severidad de las fallas, Exactitud de las salidas, Tiempo medio de fallos, Capacidad de recuperación ante fallas, Capacidad de predicción.
  • Rendimiento: Velocidad del procesamiento, Tiempo de respuesta, Consumo de recursos, Rendimiento efectivo total, Eficacia.
  • Capacidad de Soporte: Extensibilidad, Adaptabilidad, Capacidad de pruebas, Capacidad de configuración, Compatibilidad, Requisitos de instalación.
3.- Modelo DROMEY (1996)

Este modelo fue desarrollado en 1996 y resalta el hecho de que la calidad del producto es altamente determinada por los componentes del mismo, debido a esto sugiere únicamente cuatro factores de calidad, los cuales son:
  • Correctitud: Funcionalidad, Confiabilidad.
  • Internas: Mantenibilidad, Eficiencia, Confiabilidad.
  • Contextuales: Mantenibilidad, Reusabilidad, Portabilidad, Confiabilidad.
  • Descriptivas: Mantenibilidad, Reusabilidad, Portabilidad, Usabilidad.
4.- Normas ISO 9000

Este es el modelo más conocido y utilizado actualmente debido al grado de aceptación que ha obtenido, se enfoca únicamente en 5 factores de calidad son sus respectivos atributos:

  • Funcionalidad: Adaptabilidad, Exactitud, Interoperabilidad, Seguridad.
  • Confiabilidad: Madurez, Tolerancia a fallas, Recuperabilidad.
  • Usabilidad: Comprensibilidad, Aprendizaje, Operabilidad, Atractivo.
  • Eficiencia: Comportamiento del tiempo, Uso de los recursos.
  • Mantenimiento: Cambio, Análisis, Estabilidad, Prueba.
  • Portabilidad: Adaptabilidad, Instalación, Coexistencia, Reemplazo.
Al analizar todos estos modelos de una manera detenida, se puede notar que comparten muchos apartados como la eficiencia, la portabilidad, la confiabilidad, etc. Gracias a esto se llega a una idea general de los criterios utilizados al medir la calidad de un software, que sería el que sea funcional, eficiente, confiable, portable, mantenible, accesible y flexible.


Fuentes:

Lemus Olalde, Cuauhtemoc. (2007). Calidad de Software: Modelos, Procesos, Arquitecturas. abril 14, 2015, de SETyS Sitio web: http://www.cimat.mx/Eventos/seminariodetecnologias/handout-CLemus.pdf

Fernández Peña, Juan Manuel. (2011). Calidad del Software. abril 14, 2015, de uv.mx Sitio web: http://www.uv.mx/personal/jfernandez/files/2010/07/8_Calidad.pdf

Pereira, Betzabeth. (2012). Métricas de Calidad de Software. abril 14, 2015, de ldc.usb.ve Sitio web: http://ldc.usb.ve/~abianc/materias/ci4712/metricas.pdf

No hay comentarios.:

Publicar un comentario